Crates.io | jsonc-parser |
lib.rs | jsonc-parser |
version | 0.23.0 |
source | src |
created_at | 2020-04-22 18:57:34.732559 |
updated_at | 2023-10-27 05:22:28.581608 |
description | JSONC parser. |
homepage | |
repository | https://github.com/dprint/jsonc-parser |
max_upload_size | |
id | 233031 |
size | 623,155 |
JSONC parser implemented in Rust.
To a simple JsonValue
:
use jsonc_parser::parse_to_value;
let json_value = parse_to_value(r#"{ "test": 5 } // test"#, &Default::default())?;
// check the json_value here
Or an AST:
use jsonc_parser::parse_to_ast;
use jsonc_parser::CollectOptions;
let parse_result = parse_to_ast(r#"{ "test": 5 } // test"#, &CollectOptions {
comments: true, // include comments in result
tokens: true, // include tokens in result
}, &Default::default())?;
// ...inspect parse_result for value, tokens, and comments here...
If you enable the "serde"
feature as follows:
# in Cargo.toml
jsonc-parser = { version = "...", features = ["serde"] }
Then you can use the parse_to_serde_value
function to get a serde_json::Value
:
use jsonc_parser::parse_to_serde_value;
let json_value = parse_to_serde_value(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:
use jsonc_parser::parse_to_value;
use jsonc_parser::ParseOptions;
let json_value = parse_to_value(text, &ParseOptions {
allow_comments: false,
allow_loose_object_property_names: false,
allow_trailing_commas: false,
})?;