package yojson
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=c081a8cb5a03bddbcac4614f468cf5edafe11805277572af4071e362be6611fb
md5=3ea6e36422dd670e8ab880710d5f7398
Description
It addresses a few shortcomings of json-wheel including 2x speedup, polymorphic variants and optional syntax for tuples and variants.
ydump is a pretty-printing command-line program provided with the yojson package.
The program atdgen can be used to derive OCaml-JSON serializers and deserializers from type definitions.
Published: 24 Feb 2018
README
Yojson: JSON library for OCaml
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
Dependencies (5)
-
biniou
>= "1.2.0"
- easy-format
-
cppo
build
-
jbuilder
>= "1.0+beta7"
-
ocaml
>= "4.02.3"
Dev Dependencies
None
-
0install
< "2.18"
-
acgtk
>= "1.3.2" & < "1.5.3"
-
archetype
< "1.2.5"
-
atdgen
< "2.2.1"
-
atdgen-runtime
< "2.2.1"
-
aws
< "1.0.0"
-
aws-s3
< "4.5.1" | >= "4.8.0"
- bap-radare2
-
bitcoin
< "3.0"
- boulangerie
-
builder-web
>= "0.2.0"
-
calculon
< "0.6"
- calculon-redis-lib
- camels
- canary
- cb-check
-
cbor
< "0.3"
- cconv-ppx
- colibrics
- comby
- comby-kernel
- comby-semantic
-
containers
>= "3.9"
- current_docker
- current_git
- current_github
- current_gitlab
- current_slack
- current_ssh
- dap
-
datakit-ci
= "0.12.0"
- daypack-lib
- dblp-api
-
decoders-yojson
< "0.7.0"
- deriving-yojson
-
devkit
>= "0.4" & < "1.2"
- disml
-
docker-api
< "0.2.2"
- dream
-
earlybird
< "1.0.0"
-
facebook-sdk
< "0.3.1"
-
fkie-cad-cwe-checker
< "0.2"
-
frama-c
>= "19.0" & < "23.0"
- fred
-
frenetic
>= "3.2.0" & < "5.0.5"
-
fstar
>= "0.9.3.0-beta1"
-
gapi-ocaml
< "0.4.3"
-
gdbprofiler
>= "0.2" & < "0.4"
-
gemini
< "0.3.0"
-
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"
- h2
-
hilite
< "0.3.0"
- hl_yaml
- hockmd
-
horned_worm
< "0.3.5"
- hpack
- hsluv
- index-bench
- iocaml
- iocaml-kernel
-
irmin-bench
< "3.0.0"
-
irmin-graphql
>= "2.2.0"
- irmin-tezos
-
jhupllib
< "0.2.2"
-
jose
< "0.7.0"
-
js_of_ocaml
= "2.8.4"
- js_of_ocaml-compiler
- json-pointer
- json-predicate
- json-rpc
- json_decoder
- jsondiff
-
jsonrpc
< "1.6.0"
- jsonschema2atd
-
jupyter
< "2.7.0"
-
jupyter-kernel
< "0.5"
- jwt
-
jwto
< "0.2.0"
-
KaSim
>= "4.0.0"
- karamel
- ketrew
- kind2
-
kremlin
< "transition"
- kubecaml
- lablqt
- learn-ocaml
- lsp
-
merlin
< "3.3.3"
- merlin-acme
- mezzo
-
minimal
>= "1.1.0"
- monorobot
-
morbig
< "0.10.4"
- netml
-
nsq
>= "0.2.4"
-
obuilder
< "0.4"
- ocaml-gist
- ocaml-lsp-server
-
ocaml-protoc-plugin
>= "6.1.0"
- ocaml-protoc-yojson
- ocaml-webworker
-
ocf
< "0.6.0"
-
oclaunch
< "0.2.1"
-
ocsigen-start
< "1.7.0"
-
odoc
>= "2.0.0" & < "2.3.0"
- oframl
- ogen
- oidc
-
ojs-base
!= "0.2.0" & < "0.6.0"
- openai-gym
- oraft
- orun
- ozulip
-
pds-reachability
< "0.2.3"
- petr4
-
phylogenetics
= "0.2.0"
-
pkcs11
>= "0.9.0" & < "1.0.0"
- plist
- podge
- ppx_deriving_jsonschema
-
ppx_deriving_protocol
< "0.8.1"
-
ppx_deriving_yojson
< "3.4"
- ppx_graphql
- ppx_json_types
-
ppx_protocol_conv
< "3.1.0"
-
ppx_protocol_conv_json
< "3.1.3"
-
ppx_yojson
< "1.0.0"
- prof_spacetime
-
qmp
< "0.19.0"
- quests
- r2pipe
- radare2
-
rdf
>= "0.9.0" & < "0.12.0"
-
records
< "1.0.0"
- repr-bench
-
rpc
= "2.2.0"
-
rpclib
< "6.1.0"
- rubytt
- rungen
- SZXX
- safemoney
- satyrographos
- semver2
- sentry
- slack
- slacko
- slug
- sparrow
- sphinxcontrib-ocaml
- spotify-web-api
- stitch
- swagger
-
tdigest
< "2.1.0"
- telegraml
- testrunner
-
textrazor
< "0.1.1"
- tezos-context-hash-irmin
- themoviedb
- transmission-rpc
- u2f
- usbmux
- vecosek
- vecosek-scene
- vercel
- vscoq-language-server
-
wamp
< "1.0"
- wamp-yojson
- webauthn
-
xapi-rrd
>= "1.9.0"
Conflicts (1)
-
dune
>= "1.7.0"