A JSON implementation in C with reference counting object model for constructing, parsing, and serializing JSON objects.
JSON-C is a JSON implementation in C that provides a reference counting object model for constructing, parsing, and serializing JSON objects. It enables C applications to handle JSON data easily by offering functions to create JSON objects, convert them to strings, and parse JSON strings back into C structures. The library conforms to RFC 8259 and is designed for reliability and interoperability in JSON processing.
C developers working on applications that require JSON data interchange, such as embedded systems, network services, or cross-platform tools. It is also suitable for projects needing a lightweight, standard-compliant JSON library without external dependencies.
Developers choose JSON-C for its straightforward reference counting model, which simplifies memory management, and its adherence to JSON standards. Its partial threading support and flexible build options make it adaptable to various performance and deployment requirements.
https://github.com/json-c/json-c is the official code repository for json-c. See the wiki for release tarballs for download. API docs at http://json-c.github.io/json-c/
Automates memory management through json_object_get() and json_object_put(), reducing manual allocation errors and simplifying object lifecycle.
Conforms to RFC 8259, ensuring JSON interoperability and correctness in data interchange.
Offers CMake options for static/shared libraries and supports niche platforms like Android and Amiga, as shown in the build instructions.
Implements RFC 6901 for precise object retrieval from JSON trees, enhancing data manipulation capabilities.
Partial threading support uses atomic operations that can make json_object_get() and json_object_put() 3x slower, impacting performance in threaded programs.
Only provides atomic operations for basic functions, not full multi-threaded access to object trees, which can lead to concurrency issues.
Setting up for platforms like Android or Amiga requires specific toolchains and Docker containers, adding development overhead.
JSON for Modern C++
Parsing gigabytes of JSON per second : used by Facebook/Meta Velox, the Node.js runtime, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks
A fast JSON parser/generator for C++ with both SAX/DOM style API
Ultralightweight JSON parser in ANSI C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.