jsonc-parser

JSONC parser implemented in Rust.

Example

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... ```

Serde

If you enable the "serde" feature as follows:

```toml

in Cargo.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();).

Parse Strictly as JSON

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, })?; ```