JSONC parser implemented in Rust.
To a simple JsonValue
:
```rs use jsoncparser::parseto_value;
let jsonvalue = parsetovalue(r#"{ "test": 5 } // test"#, &Default::default())?; // check the jsonvalue here ```
Or an AST:
```rs use jsoncparser::parsetoast; use jsoncparser::CollectOptions;
let parseresult = parsetoast(r#"{ "test": 5 } // test"#, &CollectOptions { comments: true, // include comments in result tokens: true, // include tokens in result }, &Default::default())?; // ...inspect parseresult for value, tokens, and comments here... ```
If you enable the "serde"
feature as follows:
```toml
jsonc-parser = { version = "...", features = ["serde"] } ```
Then you can use the parse_to_serde_value
function to get a serde_json::Value
:
```rs use jsoncparser::parsetoserdevalue;
let jsonvalue = parsetoserdevalue(r#"{ "test": 5 } // test"#, &Default::default())?; ```
Alternatively, use parse_to_ast
then call .into()
(ex. let value: serde_json::Value = ast.into();
).
Provide ParseOptions
and set all the options to false:
```rs use jsoncparser::parsetovalue; use jsoncparser::ParseOptions;
let jsonvalue = parsetovalue(text, &ParseOptions { allowcomments: false, allowlooseobjectpropertynames: false, allowtrailingcommas: false, })?; ```