JSON parser/generator for constrained platforms
cojson is a C++ pull-type
JSON parser/serializer for constrained platforms,
such as bare metal applications on low-end MCUs. It does not use memory
allocation and has almost no external dependencies. It is not intrusive - it
neither forces nor implies any particular design of the application.
Instead it adapts to fit any existing application code.
It is tolerant to data type mismatching. When such occurs, parser just skips
mismatching data and makes best efforts to continue parsing.
The parser is recursive, e.g. nested
JSON elements are handled with the
recursion. However, this recursion is driven by the structure definition, not by
the input data, which prevents stack faults on malformed input data.
cojson is character type neutral - it can work with signed or unsigned
character, as well as with standard wide character types:
It is also transparent for
UTF8 and properly handles
cojson works against a user-defined structure which specifies hierarchy,
data types, and data storage access methods. Thus, when parsing is complete,
the data already delivered to the application and no further processing needed.
The same structure definition is also used for writing
JSON structure is defined with a set of templetized function.
- Compiler: cojson sources need a
C++11enabled compiler, such as
libstdc++ v3highly desirable. But if not available a workaround exists
- Code space: Depending on the platform and
JSONstructure complexity varies from 4kB to 20kB.
- RAM space: 20-80 bytes per entry in the defined
- Arduino Mega
- Teensy 3.1
- NodeMCU V3