Blame doc/html/index.html

Packit Service def718
Packit Service def718
<html xmlns="http://www.w3.org/1999/xhtml">
Packit Service def718
<head>
Packit Service def718
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
Packit Service def718
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
Packit Service def718
<meta name="generator" content="Doxygen 1.8.8"/>
Packit Service def718
<title>json-c: `json-c`</title>
Packit Service def718
<link href="tabs.css" rel="stylesheet" type="text/css"/>
Packit Service def718
<script type="text/javascript" src="jquery.js"></script>
Packit Service def718
<script type="text/javascript" src="dynsections.js"></script>
Packit Service def718
<link href="doxygen.css" rel="stylesheet" type="text/css" />
Packit Service def718
</head>
Packit Service def718
<body>
Packit Service def718
Packit Service def718
Packit Service def718
Packit Service def718
 
Packit Service def718
 
Packit Service def718
  
Packit Service def718
   
json-c
Packit Service def718
    0.13.1
Packit Service def718
   
Packit Service def718
  
Packit Service def718
 
Packit Service def718
 
Packit Service def718
Packit Service def718
Packit Service def718
Packit Service def718
Packit Service def718
  
Packit Service def718
    
    Packit Service def718
          
  • Main Page
  • Packit Service def718
          
  • Related Pages
  • Packit Service def718
          
  • Data Structures
  • Packit Service def718
          
  • Files
  • Packit Service def718
        
    Packit Service def718
      
    Packit Service def718
    Packit Service def718
    Packit Service def718
      
    Packit Service def718
    `json-c`
    Packit Service def718
    Packit Service def718
    Packit Service def718
      Packit Service def718
    1. Overview and Build Status
    2. Packit Service def718
    3. Building on Unix
    4. Packit Service def718
    5. Install Prerequisites
    6. Packit Service def718
    7. Building with partial threading support
    8. Packit Service def718
    9. Linking to libjson-c
    10. Packit Service def718
    11. Using json-c
    12. Packit Service def718
      Packit Service def718

      JSON-C - A JSON implementation in C

      Packit Service def718

      Build Status

        Packit Service def718
      • AppVeyor Build
      • Packit Service def718
        AppVeyor Build Status
        Packit Service def718
        Packit Service def718
        Packit Service def718
      • Travis Build
      • Packit Service def718
        Travis Build Status
        Packit Service def718
        Packit Service def718
        Packit Service def718
        Packit Service def718

        JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects. It aims to conform to RFC 7159.

        Packit Service def718

        Building on Unix with git, gcc and autotools

        Packit Service def718

        Home page for json-c: https://github.com/json-c/json-c/wiki

        Packit Service def718

        Prerequisites:

        Packit Service def718

        See also the "Installing prerequisites" section below.

        Packit Service def718
          Packit Service def718
        • gcc, clang, or another C compiler
        • Packit Service def718
        • libtool>=2.2.6b
        • Packit Service def718
          Packit Service def718

          If you're not using a release tarball, you'll also need:

          Packit Service def718
            Packit Service def718
          • autoconf>=2.64 (autoreconf)
          • Packit Service def718
          • automake>=1.13
          • Packit Service def718
            Packit Service def718

            Make sure you have a complete libtool install, including libtoolize.

            Packit Service def718

            To generate docs (e.g. as part of make distcheck) you'll also need:

              Packit Service def718
            • doxygen>=1.8.13
            • Packit Service def718
              Packit Service def718

              Build instructions:

              Packit Service def718

              json-c GitHub repo: https://github.com/json-c/json-c

              Packit Service def718

              ```sh $ git clone https://github.com/json-c/json-c.git $ cd json-c $ sh autogen.sh ```

              Packit Service def718

              followed by

              Packit Service def718

              ```sh $ ./configure # –enable-threading $ make $ make install ```

              Packit Service def718

              To build and run the test programs:

              Packit Service def718

              ```sh $ make check $ make USE_VALGRIND=0 check # optionally skip using valgrind ```

              Packit Service def718

              Install prerequisites

              Packit Service def718

              If you are on a relatively modern system, you'll likely be able to install the prerequisites using your OS's packaging system.

              Packit Service def718

              Install using apt (e.g. Ubuntu 16.04.2 LTS)

              Packit Service def718

              ```sh sudo apt install git sudo apt install autoconf automake libtool sudo apt install valgrind # optional ```

              Packit Service def718

              Then start from the "git clone" command, above.

              Packit Service def718

              Manually install and build autoconf, automake and libtool

              Packit Service def718

              For older OS's that don't have up-to-date version of the packages will require a bit more work. For example, CentOS release 5.11, etc...

              Packit Service def718

              ```sh curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz curl -O http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz curl -O http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz

              Packit Service def718

              tar xzf autoconf-2.69.tar.gz tar xzf automake-1.15.tar.gz tar xzf libtool-2.2.6b.tar.gz

              Packit Service def718

              export PATH=${HOME}/ac_install/bin:$PATH

              Packit Service def718

              (cd autoconf-2.69 && \ ./configure –prefix ${HOME}/ac_install && \ make && \ make install)

              Packit Service def718

              (cd automake-1.15 && \ ./configure –prefix ${HOME}/ac_install && \ make && \ make install)

              Packit Service def718

              (cd libtool-2.2.6b && \ ./configure –prefix ${HOME}/ac_install && \ make && \ make install) ```

              Packit Service def718

              Building with partial threading support

              Packit Service def718

              Although json-c does not support fully multi-threaded access to object trees, it has some code to help make use in threaded programs a bit safer. Currently, this is limited to using atomic operations for json_object_get() and json_object_put().

              Packit Service def718

              Since this may have a performance impact, of at least 3x slower according to https://stackoverflow.com/a/11609063, it is disabled by default. You may turn it on by adjusting your configure command with: –enable-threading

              Packit Service def718

              Separately, the default hash function used for object field keys, lh_char_hash, uses a compare-and-swap operation to ensure the randomly seed is only generated once. Because this is a one-time operation, it is always compiled in when the compare-and-swap operation is available.

              Packit Service def718

              Linking to libjson-c

              Packit Service def718

              If your system has pkgconfig, then you can just add this to your makefile:

              Packit Service def718

              ```make CFLAGS += $(shell pkg-config –cflags json-c) LDFLAGS += $(shell pkg-config –libs json-c) ```

              Packit Service def718

              Without pkgconfig, you would do something like this:

              Packit Service def718

              ```make JSON_C_DIR=/path/to/json_c/install CFLAGS += -I/include/json-c LDFLAGS+= -L/lib -ljson-c ```

              Packit Service def718

              Using json-c

              Packit Service def718

              To use json-c you can either include json.h, or preferrably, one of the following more specific header files:

              Packit Service def718
                Packit Service def718
              • json_object.h - Core types and methods.
              • Packit Service def718
              • json_tokener.h - Methods for parsing and serializing json-c object trees.
              • Packit Service def718
              • json_pointer.h - JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree.
              • Packit Service def718
              • json_object_iterator.h - Methods for iterating over single json_object instances.
              • Packit Service def718
              • json_visit.h - Methods for walking a tree of json-c objects.
              • Packit Service def718
              • json_util.h - Miscelleanous utility functions.
              • Packit Service def718
                Packit Service def718

                For a full list of headers see files.html

                Packit Service def718
                Packit Service def718
                Packit Service def718

                <address class="footer"><small>
                Packit Service def718
                Generated on Mon Mar 5 2018 23:17:09 for json-c by  
                Packit Service def718
                doxygen
                Packit Service def718
                 1.8.8
                Packit Service def718
                </small></address>
                Packit Service def718
                </body>
                Packit Service def718
                </html>