This module contains procs for serialization and deseralization of arbitrary Nim data structures. The serialization format uses JSON. Warning: The serialization format could change in future!
Restriction: For objects their type is not serialized. This means essentially that it does not work if the object has some other runtime type than its compiletime type:
type A = object of RootObj B = object of A f: int var a: ref A b: ref B new(b) a = b echo($$a[]) # produces "{}", not "{f: 0}" # unmarshal let c = to[B]("""{"f": 2}""") # marshal let s = $$cNote: The
to
and $$
operations are available at compile-time! proc load[T](s: Stream; data: var T)
proc store[T](s: Stream; data: T)
proc `$$`[T](x: T): string
proc to[T](data: string): T
T
.
© 2006–2017 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/marshal.html