Crate json_syntax
source ·Expand description
This library provides a strict JSON parser as defined by
RFC 8259 and
ECMA-404.
Parsing values generates a CodeMap that keeps track of the position of
each JSON value fragment in the parsed document.
§Features
- Strict implementation of RFC 8259 and ECMA-404.
- No stack overflow, your memory is the limit.
- Numbers are stored in lexical form thanks to the json-numbercrate, their precision is not limited.
- Duplicate values are preserved. A JSON object is just a list of entries, in the order of definition.
- Strings are stored on the stack whenever possible, thanks to the smallstrcrate.
- The parser is configurable to accept documents that do not strictly adhere to the standard.
- Highly configurable printing methods.
- Macro to build any value statically.
- JSON Canonicalization Scheme implementation (RFC 8785)
enabled with the canonicalizationfeature.
- serdesupport (by enabling the- serdefeature).
- Conversion from/to serde_json::Value(by enabling theserde_jsonfeature).
- Thoroughly tested.
§Usage
use std::fs;
use json_syntax::{Value, Parse, Print};
let filename = "tests/inputs/y_structure_500_nested_arrays.json";
let input = fs::read_to_string(filename).unwrap();
let mut value = Value::parse_str(&input).expect("parse error").0;
println!("value: {}", value.pretty_print());Re-exports§
Modules§
Macros§
- Constructs ajson_syntax::Valuefrom a JSON literal.
Structs§
- Invalid number error.
- Lexical JSON number.
- Wrapper to view a value without considering the order of the objects entries.
Enums§
- Value kind.
- JSON Value.
Constants§
- Number buffer stack capacity.
- String stack capacity.
Traits§
Functions§
Type Aliases§
- Array.
- Number buffer.
- String.