1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Design goals:
- reducing inter-package dependencies by the use of polymorphic
variants for the JSON tree type
- allowing variants of the JSON tree type to be shipped by the library
itself or to be easily created as extensions of the library
- allowing type-aware serializers/deserializers such as json-static
to read and write directly without going through a JSON tree,
for efficiency purposes.
This requires making readers and writers of JSON atoms (int, string,
etc.) to be exported and composable.
- providing a few non-standard, optional extensions of JSON.
These extensions will include:
* optional quotes around "simple" field/constructor names
* a syntax for tuples (at least 2 elements): (x, y)
* a syntax for variants (0 or 1 arg only): <Foo> <Bar:"abc">
Other choices already in json-wheel:
- distinction between ints and floats (optional)
- Getting rid of the UTF-X encoding constraint that prevents from
exchanging binary data:
* encoding is ASCII except for the contents of string literals
* string literals may represent arbitrary sequence of bytes
* \uABCD escapes in string literals expand to UTF-8
Miscellaneous:
- no dependency on ocamlnet for UTF-8
|