Go to file
Nathaniel McCallum b8bb078cc2 Add JSON_EMBED encoding flag
The JSON_EMBED encoding flag causes the opening and closing characters
of the top-level array ('[', ']') or object ('{', '}') to be omitted
during encoding. This feature makes it possible to concatenate multiple
arrays or objects in the stream output. It also makes it possible to
perform outputs of partial composes.

One such example of a partial compose is when outputting a JWE object.
The output is a JSON object. But it has one top-level attribute
("ciphertext") that can grow out of proportion with the rest of the
metadata. With the JSON_EMBED flag, the other metadata can be composed
ahead of time and dumped during the beginning of output, where the
"ciphertext" and "tag" attributes can be streamed out in chunks. Thus,
the header material can be composed with Jansson and the ciphertext
itself can be composed manually.
2017-02-27 15:09:03 -05:00
android Update copyrights for 2016 2016-09-18 14:17:03 +03:00
cmake Update copyrights for 2016 2016-09-18 14:17:03 +03:00
doc Add JSON_EMBED encoding flag 2017-02-27 15:09:03 -05:00
examples jansson 2.8 2016-08-30 21:09:28 +03:00
src Add JSON_EMBED encoding flag 2017-02-27 15:09:03 -05:00
test Add JSON_EMBED encoding flag 2017-02-27 15:09:03 -05:00
.gitignore SmartOS build fix 2014-04-06 04:28:52 +00:00
.travis.yml Add support for coverage/coveralls.io in cmake project. 2014-12-12 23:57:01 +01:00
Android.mk Android.mk: Add -DHAVE_STDINT_H to LOCAL_CFLAGS 2014-07-31 07:50:31 +03:00
appveyor.yml appveyor.yml: Build on all Visual Studio versions 2016-06-03 12:08:36 +03:00
CHANGES jansson 2.9 2016-09-18 14:35:05 +03:00
CleanSpec.mk Create Android.mk, preconfigured jansson_config.h and CleanSpec.mk for Android-like build systems. 2013-03-27 17:31:05 -07:00
CMakeLists.txt parens for LONG_LONG_INT in cmake 2016-11-12 18:58:38 -08:00
configure.ac jansson 2.9 2016-09-18 14:35:05 +03:00
jansson.pc.in Add pkg-config support 2010-01-07 19:30:20 +02:00
LICENSE Update copyrights for 2016 2016-09-18 14:17:03 +03:00
Makefile.am jansson 2.8 2016-08-30 21:09:28 +03:00
README.rst Change readthedocs domain 2016-04-28 07:04:00 +03:00
release.sh Compress bz2 doc tarballs with bzip2 instead of gzip 2013-01-06 14:18:28 +02:00

Jansson README
==============

.. image:: https://travis-ci.org/akheron/jansson.png
  :target: https://travis-ci.org/akheron/jansson
  
.. image:: https://ci.appveyor.com/api/projects/status/lmhkkc4q8cwc65ko
  :target: https://ci.appveyor.com/project/akheron/jansson

.. image:: https://coveralls.io/repos/akheron/jansson/badge.png?branch=master
  :target: https://coveralls.io/r/akheron/jansson?branch=master

Jansson_ is a C library for encoding, decoding and manipulating JSON
data. Its main features and design principles are:

- Simple and intuitive API and data model

- `Comprehensive documentation`_

- No dependencies on other libraries

- Full Unicode support (UTF-8)

- Extensive test suite

Jansson is licensed under the `MIT license`_; see LICENSE in the
source distribution for details.


Compilation and Installation
----------------------------

If you obtained a source tarball, just use the standard autotools
commands::

   $ ./configure
   $ make
   $ make install

To run the test suite, invoke::

   $ make check

If the source has been checked out from a Git repository, the
./configure script has to be generated first. The easiest way is to
use autoreconf::

   $ autoreconf -i


Documentation
-------------

Documentation is available at http://jansson.readthedocs.io/en/latest/.

The documentation source is in the ``doc/`` subdirectory. To generate
HTML documentation, invoke::

   $ make html

Then, point your browser to ``doc/_build/html/index.html``. Sphinx_
1.0 or newer is required to generate the documentation.


.. _Jansson: http://www.digip.org/jansson/
.. _`Comprehensive documentation`: http://jansson.readthedocs.io/en/latest/
.. _`MIT license`: http://www.opensource.org/licenses/mit-license.php
.. _Sphinx: http://sphinx.pocoo.org/