The main project page is http://mjambon.com/yojson.html Yojson supersedes json-wheel.
-
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): Bar:"abc"
-
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
- no dependency on ocamlnet for UTF-8