yojson

Yojson is an optimized parsing and printing library for the JSON format
README

Library documentation

Currently at https://mjambon.github.io/mjambon2016/yojson-doc/Yojson.html

The link above is for the ocamldoc-generated of some past version of yojson. Suggestions on how to keep this documentation updated automatically for each minor release are welcome.

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

Install
Published
24 Feb 2018
Sources
v1.4.1.tar.gz
md5=3ea6e36422dd670e8ab880710d5f7398
Dependencies
biniou
>= "1.2.0"
cppo
build
jbuilder
>= "1.0+beta7"
ocaml
>= "4.02.3"
Reverse Dependencies
0install
< "2.18"
acgtk
>= "1.3.2" & < "1.5.3"
archetype
< "1.2.5"
atdgen
< "2.2.1"
aws
< "1.0.0"
aws-s3
< "4.5.1" | >= "4.8.0"
calculon
< "0.6"
cbor
< "0.3"
containers
>= "3.9"
datakit-ci
= "0.12.0"
devkit
>= "0.4" & < "1.2"
docker-api
< "0.2.2"
earlybird
< "1.0.0"
facebook-sdk
< "0.3.1"
frama-c
>= "19.0" & < "23.0"
frenetic
>= "3.2.0" & < "5.0.5"
fstar
>= "0.9.3.0-beta1"
gapi-ocaml
< "0.4.3"
gdbprofiler
>= "0.2" & < "0.4"
gen-bs
>= "0.1.0"
github
< "4.1.0"
goblint
< "1.1.1"
goblint-cil
>= "1.8.0"
graphql
< "0.14.0"
graphql_ppx
< "1.2.2"
horned_worm
< "0.3.5"
irmin-bench
< "3.0.0"
irmin-graphql
>= "2.2.0"
jhupllib
< "0.2.2"
jose
< "0.7.0"
js_of_ocaml
= "2.8.4"
jsonrpc
< "1.6.0"
jupyter
< "2.7.0"
jwto
< "0.2.0"
KaSim
>= "4.0.0"
merlin
< "3.3.3"
minimal
>= "1.1.0"
nsq
>= "0.2.4"
obuilder
< "0.4"
ocf
< "0.6.0"
oclaunch
< "0.2.1"
ocsigen-start
< "1.7.0"
odoc
>= "2.0.0"
ojs-base
!= "0.2.0" & < "0.6.0"
pkcs11
>= "0.9.0" & < "1.0.0"
ppx_yojson
< "1.0.0"
qmp
< "0.19.0"
rdf
>= "0.9.0" & < "0.12.0"
rpc
= "2.2.0"
rpclib
< "6.1.0"
textrazor
< "0.1.1"
xapi-rrd
>= "1.9.0"