sj.h is a tiny JSON parsing library written in C99 for developers who want a minimal, allocation-free way to walk through JSON data. It is intentionally small, around a few hundred lines or less depending on how it is counted, and keeps state minimal so it can fit into constrained environments. The library does not try to own every part of JSON handling; instead, it leaves number conversion and string interpretation to the user. This design gives developers direct control over memory, numeric precision, Unicode handling, and application-specific parsing behavior. It reports errors with line and column locations, which makes malformed input easier to debug despite the library’s small size. It is especially appealing for embedded tools, game engines, small utilities, and C projects that value transparency over abstraction.
Features
- Tiny C99 JSON parser
- Zero-allocation parsing model
- Minimal parser state
- Line and column error reporting
- User-controlled number handling
- User-controlled string handling