https://github.com/MaJerle/lwjson
Lightweight JSON parser for embedded systems
https://github.com/MaJerle/lwjson
embedded javascript javascript-object-notation json lightweight microcontroller optimization parser reader stream streaming systems
Last synced: 11 days ago
JSON representation
Lightweight JSON parser for embedded systems
- Host: GitHub
- URL: https://github.com/MaJerle/lwjson
- Owner: MaJerle
- License: mit
- Created: 2020-11-30T22:14:06.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2025-11-28T15:35:52.000Z (3 months ago)
- Last Synced: 2025-11-30T21:21:28.596Z (3 months ago)
- Topics: embedded, javascript, javascript-object-notation, json, lightweight, microcontroller, optimization, parser, reader, stream, streaming, systems
- Language: C
- Homepage:
- Size: 415 KB
- Stars: 243
- Watchers: 12
- Forks: 58
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-mcu-embedded - Lightweight JSON text parser
README
# Lightweight JSON text parser
Library provides generic JSON text parser, that is optimized for embedded systems.
Supports `streaming` parsing or classic parsing with full JSON data available in one big linear memory.
First one being optimized for ultra small microcontrollers, second one being ready for PC applications - or simply when several kB of RAM memory is available at any given point of time
Read first: Documentation
## Features
* Written in C (C11), compatible with ``size_t`` for size data types
* RFC 4627 and RFC 8259 compliant
* Based on static token allocation with optional application dynamic pre-allocation
* No recursion during parse operation
* Re-entrant functions
* Zero-copy, no ``malloc`` or ``free`` functions used
* Supports streaming parsing as secondary option
* Optional support for inline comments with `/* comment... */` syntax between any *blank* region of input string
* JSON serializer separate module
* Advanced find algorithm for tokens
* Test coverage is available
* User friendly MIT license
## Contribute
Fresh contributions are always welcome. Simple instructions to proceed:
1. Fork Github repository
2. Follow [C style & coding rules](https://github.com/MaJerle/c-code-style) already used in the project
3. Create a pull request to develop branch with new features or bug fixes
Alternatively you may:
1. Report a bug
2. Ask for a feature request