yojson
This library parses JSON data into a nested OCaml tree data structure.
Library documentation
Currently at https://ocaml-community.github.io/yojson/
Examples
A simple example on how to parse JSON from a string literal.
let json_string = {|
{"number" : 42,
"string" : "yes",
"list": ["for", "sure", 42]}|}
(* val json_string : string *)
let json = Yojson.Safe.from_string json_string
(* val json : Yojson.Safe.t *)
Format.printf "Parsed to %a" Yojson.Safe.pp json
Related tooling
Yojson
is a pretty common choice for parsing JSON in OCaml, as such it is the
base for a number of tools and libraries that are built on top of it.
ppx_deriving_yojson
to
automatically generate code that converts betweenYojson.Safe.t
and custom
OCaml typesppx_yojson_conv
, an
alternative toppx_deriving_yojson
from Jane Street with different design
decisionsatd
, generates mapping code from.atd
specification files and can be used in multiple languagesjsonm
is an alternate JSON parser
that parses JSON into a stream of items, so the complete data structure does
not have to be in memory.
Help wanted
Yojson is developed and maintained by volunteers — users like you.
Various issues are in need
of attention. If you'd like to contribute, please leave a comment on the issue
you're interested in, or create a new issue. Experienced contributors will
guide you as needed.
There are many simple ways of making a positive impact. For example,
you can...
Use the software in your project.
Give a demo to your colleagues.
Share the passion on your blog.
Tweet about what you're doing with
Yojson
.Report difficulties by creating new issues. We'll triage them.
Ask questions on StackOverflow.
Answer questions on
StackOverflow.Discuss usage on the OCaml forums.
Pick a task that's easy
for you.
Check out in particular
good first time issues
and other issues with which
we could use some help.
License
Yojson
is licensed under the 3-clause BSD license, see LICENSE.md
for
details.
sha256=ab5d863f7f951a8f7fb4a708399ca2da2cf139a5e0af7818145c20295420cb1a
sha512=3ea982dbeef7ec8da54d29124ddb8b86f90583eb96ed3947851cedec9e3d2d47b981e3465d41f2c94943e6865ba6a9a51c6f0252efa6df2386d398b679aae8f2
< "2.15.1"
>= "1.3.2"
>= "2.6.0"
< "1.9.0" | >= "1.13.0" & < "2.8.0"
< "1.0.0"
>= "1.1.0" & < "4.5.1"
!= "0.5"
>= "1.3.0"
!= "0.2"
>= "3.9"
>= "8.10.0+0.7.0"
>= "0.4"
>= "0.4"
>= "0.12.3"
>= "0.7.0"
>= "0.4"
>= "0.2.2"
!= "4.4~5.0.preview" & < "4.6"
>= "1.4.0"
< "1.0.0"
< "0.3.1"
>= "19.0"
>= "3.2.0"
>= "0.9.3.0-beta1"
< "0.3.5" | >= "0.4.3"
>= "0.2"
>= "0.1.0"
!= "4.0.0"
>= "1.8.0"
< "0.0.6"
< "0.9.0" | >= "0.14.0"
>= "0.14.0"
>= "0.13.0"
>= "0.14.0"
< "3.0.0"
>= "2.2.0"
= "2.8.4"
< "1.6.0"
>= "3.0.1"
>= "2.0.0"
>= "0.2"
= "3.0.3" | = "3.8.0" | >= "4.6-412"
>= "1.1.0"
>= "0.2.4"
< "0.2.1"
>= "2.0.0" & < "2.1.1"
= "0.1.2"
!= "0.2.0"
< "0.2.0"
>= "2.0"
>= "0.19.0"
>= "1.0.0"
>= "1.0.0"
>= "0.4"
< "0.8.1"
>= "3.4"
= "2.0.0"
= "3.1.3"
< "v0.13.0"
>= "0.19.0"
>= "0.9.0"
= "0.6.0"
= "2.2.0"
>= "6.0.0"
!= "0.0.2.7"
< "0.2.0" | >= "0.3.0~rc2"
< "0.14.1"
< "2.2.0"
>= "0.1.1"
< "0.8.0"
< "0.4.0"
>= "1.9.0"
< "2.0.1"