Argonaut is a collection of libraries for working with JSON in PureScript. This library bundles together the following:
- purescript-argonaut-core provides basic parsing, printing, folding and types for
Json
. - purescript-argonaut-codecs provides codecs based on
EncodeJson
andDecodeJson
type classes (along with instances for common data types) and combinators for encoding and decodingJson
values. - purescript-argonaut-traversals defines prisms, traversals, zippers, and
JCursor
for theJson
type.
Install argonaut
with Spago:
spago install argonaut
You can also install Argonaut libraries individually (for example, by only installing argonaut-core
for the Json
type).
This library bundles together several other libraries. We recommend checking out the quick starts for those libraries depending on which use case you're looking for:
- To learn more about the basic data types and parsing functions in Argonaut, see purescript-argonaut-core.
- To learn more about encoding and decoding PureScript types to and from
Json
using type classes, see purescript-argonaut-codecs. - To learn more about encoding and decoding PureScript types to and from
Json
using profunctors, see purescript-codec-argonaut. - To learn more about manipulating
Json
using optics andJCursor
, see purescript-argonaut-traversals
argonaut
documentation is stored in a few places:
- Module documentation is published on Pursuit.
- Written documentation is kept in the docs directory.
- Usage examples can be found in the test suite.
If you get stuck, there are several ways to get help:
- Open an issue if you have encountered a bug or problem.
- Ask general questions on the PureScript Discourse forum or the PureScript Discord chat.
You can contribute to argonaut
in several ways:
-
If you encounter a problem or have a question, please open an issue. We'll do our best to work with you to resolve or answer it.
-
If you would like to contribute code, tests, or documentation, please read the contributor guide. It's a short, helpful introduction to contributing to this library, including development instructions.
-
If you have written a library, tutorial, guide, or other resource based on this package, please share it on the PureScript Discourse! Writing libraries and learning resources are a great way to help this library succeed.