This library parses JSON data into a nested OCaml tree data structure.
Currently at https://ocaml-community.github.io/yojson/
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
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.
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.
Yojson
is licensed under the 3-clause BSD license, see LICENSE.md
for
details.