A lightweight, C89-compatible JSON library with a simple API and dot-notation addressing.
Parson is a lightweight JSON library written in C, designed for parsing, serializing, and manipulating JSON data with minimal overhead. It solves the need for a simple, portable JSON solution in resource-constrained environments like embedded systems or applications where larger libraries are impractical. Its small footprint and straightforward API make it ideal for projects that require JSON handling without external dependencies.
C developers working on embedded systems, IoT devices, or applications where code size and portability are critical. It's also suitable for anyone needing a minimal JSON library without the complexity of larger alternatives.
Developers choose Parson for its extreme simplicity, small codebase (just two files), and C89 compatibility, which ensures it runs almost anywhere. Unlike heavier JSON libraries, it avoids dependencies and focuses on essential functionality, making it a reliable choice for constrained environments.
Lightweight JSON library written in 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.
Consists of only two files (parson.h and parson.c), making integration trivial and code size extremely small, ideal for embedded systems with limited resources.
Allows accessing nested JSON values using dot-separated strings (e.g., 'objectA.objectB.value'), simplifying code and resembling C struct access patterns.
Written in C89 standard, ensuring it works on legacy systems, older compilers, and environments without modern C features.
Includes built-in test suites that verify parsing, serialization, and manipulation correctness, as shown by the 'make test' command in the README.
Requires explicit freeing of JSON values with json_value_free(), increasing the risk of memory leaks and bugs if not handled carefully, as seen in all examples.
Lacks advanced JSON features like streaming parsing, JSON Schema support beyond basic validation, or efficient binary serialization, focusing only on core operations.
The README provides basic examples but lacks in-depth API references, tutorials for complex use cases, or guidance on error handling beyond simple validation.