The library is header-only: it consists solely of header files containing templates and inline functions, and requires no separately-compiled library binaries when linking. It has no dependence on other libraries.
It has been tested with MS Visual C++ 10, SP1, Intel C++ Studio XE 2013, clang 3.3 and GCC 4.8. Note that SP1 is required for VC++ 10, it fixes compiler bugs with move semantics.
Releases are on this web site. The source code repository is on
https://github.com/danielaparker/jsoncons. It is distributed under the Boost Software License.
- Uses the standard C++ input/output streams library
- Implements parsing and serializing JSON text in UTF-8 for narrow character strings and streams
- Supports UTF16 (UTF32) encodings with size 2 (size 4) wide characters
- Correctly handles surrogate pairs in \uXXXX escape sequences
- Supports event based JSON parsing and serializing with user defined input and output handlers
- Supports optional escaping of the solidus (`/`) character
- Supports `Nan`, `Inf` and `-Inf` replacement
- Accepts and ignores single line comments that start with `//`, and multi line comments that start with `/*` and end with `*/`
- Supports reading multiple json objects from a stream
- Supports optional escaping of non-ascii UTF-8 octets
- Allows extensions to the types accepted by the `json` class accessors and modifiers
- Supports storing custom data types in a json object, with specialized serialization
- Supports reading (writing) JSON values from (to) CSV files
I like the API, but -1 for relying on c++11 features so soon. I have to cross-compile to a target that does not yet have a c++11 compliant compiler, so this is not so useful for me.