lil-json
lil #![no_std] Rust crate to parse & serialize JavaScript Object Notation (JSON). alloc optional. std optional.
JSON can be serialized into any type that implements embedded_io::Write or a String (with alloc feature enabled)
Here is a minimal example of serializing a JSON object to stdout with a one-liner, making use of the lil-json::FieldBuffer auto trait, core::convert::From for JsonValue, & core::convert::Into for JsonField
use stdout;
use FieldBuffer;
// output: {"some_number":12345,"some_string":"hello world!","some_boolean":true}
Here is an example of parsing a JSON object
use ;
Here is an example of parsing a JSON object with the alloc feature enabled - no need to pre-allocate space for the fields or escaped strings:
use ;
Check out the examples for more. Still a work in progress. Expect bugs & breaking API changes. Check out the examples to get started.
the following types are currently supported:
- objects (currently limited to non-nested types)
- string (currently limited to ascii-)
- boolean
- null
- number (currently limited to integers)
the following types are not currently supported:
- arrays (currently limited to non-nested types)
TODO:
- support null type
- alloc features
- expose serialization methods for terminal types
- support arrays
- support parsing arbitrary types
- support unicode strings
- support buffered serialization
- support parsing from stream
- support parsing streaming objects/arrays
- support embedded-io-async?