A very low footprint, dependency-free DOM-style JSON parser written in portable ANSI C.
udp/json-parser is a lightweight, DOM-style JSON parser written in portable ANSI C. It parses JSON data into a structured in-memory representation without recursion or excessive memory allocation, solving the need for a minimal, dependency-free JSON parser in resource-constrained environments like embedded systems.
C/C++ developers working on embedded systems, IoT devices, or any project where memory footprint and portability are critical constraints.
Developers choose this parser for its zero dependencies, extremely low memory usage, and strict adherence to C89 standards, ensuring compatibility with virtually any C compiler and platform.
Very low footprint DOM-style JSON parser written in portable 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.
Requires only `json.c` and `json.h`, enabling easy integration without external libraries, as stated in the README for drop-in use.
Designed to avoid recursion and excess allocation, making it ideal for embedded systems with limited RAM, as emphasized in the philosophy.
Written in ANSI C, ensuring maximum compatibility across platforms, including legacy compilers and microcontrollers.
Offers clean C functions like `json_parse` and `json_value_free`, with operator sugar for C++ integration, making it straightforward to use.
Supports compile-time configurations such as source tracking and custom integer types, plus runtime settings for comments and custom allocators, adding flexibility.
Loads entire JSON into memory, which can be inefficient for large files or streaming use cases, lacking incremental parsing support as it's not designed for that.
Focused solely on parsing; serialization requires a separate library (json-builder), and it lacks validation or other advanced JSON features mentioned in the README.
Provides error buffers via `json_parse_ex` but lacks extensive error reporting or debugging tools, which might be insufficient for complex applications.