Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ocaml-community/yojson
Low-level JSON parsing and pretty-printing library for OCaml
https://github.com/ocaml-community/yojson
json ocaml parser yojson
Last synced: about 1 month ago
JSON representation
Low-level JSON parsing and pretty-printing library for OCaml
- Host: GitHub
- URL: https://github.com/ocaml-community/yojson
- Owner: ocaml-community
- License: bsd-3-clause
- Created: 2011-11-23T05:51:10.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2024-06-28T14:39:19.000Z (5 months ago)
- Last Synced: 2024-09-29T06:41:08.569Z (about 2 months ago)
- Topics: json, ocaml, parser, yojson
- Language: OCaml
- Homepage: https://ocaml-community.github.io/yojson/
- Size: 824 KB
- Stars: 328
- Watchers: 9
- Forks: 58
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
Yojson: JSON library for OCaml
==============================[![Build Status](https://img.shields.io/endpoint?url=https%3A%2F%2Fci.ocamllabs.io%2Fbadge%2Focaml-community%2Fyojson%2Fmaster&logo=ocaml)](https://ci.ocamllabs.io/github/ocaml-community/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.
```ocaml
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 *)let () = 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`](https://github.com/ocaml-ppx/ppx_deriving_yojson) to
automatically generate code that converts between `Yojson.Safe.t` and custom
OCaml types
* [`ppx_yojson_conv`](https://github.com/janestreet/ppx_yojson_conv), an
alternative to `ppx_deriving_yojson` from Jane Street with different design
decisions
* [`atd`](https://github.com/ahrefs/atd), generates mapping code from `.atd`
specification files and can be used in multiple languages
* [`jsonm`](https://erratique.ch/software/jsonm) 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](https://github.com/ocaml-community/yojson/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](https://stackoverflow.com/search?q=yojson).
* Discuss usage on the [OCaml forums](https://discuss.ocaml.org/).
* Pick a [task](https://github.com/ocaml-community/yojson/issues) that's easy
for you.Check out in particular
[good first time issues](https://github.com/ocaml-community/yojson/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+time+issue%22)
and other issues with which
[we could use some help](https://github.com/ocaml-community/yojson/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).License
-------`Yojson` is licensed under the 3-clause BSD license, see `LICENSE.md` for
details.