c12-parser 1.1.0

Toolbox for parsing and stringifying various formats, including JSON, JSON5, JSONC, INI, TOML, and YAML.
Documentation
//! Example: parse JSONC (JSON with comments and optional trailing commas).

use c12_parser::{JsoncExtraOptions, parse_jsonc, stringify_jsonc};

fn main() {
    let text = r#"
{
  // config for the app
  "name": "my-app",
  "port": 3000,
  "debug": true
}
"#;

    let formatted = parse_jsonc(text, None, None).expect("parse");
    println!(
        "Parsed: {} port={}",
        formatted.value["name"], formatted.value["port"]
    );

    let out = stringify_jsonc(&formatted, None).expect("stringify");
    println!("Stringify (comments stripped, valid JSON):\n{}", out);

    let opts = JsoncExtraOptions {
        allow_trailing_comma: true,
        ..Default::default()
    };
    let with_trailing = r#"{ "x": 1, }"#;
    let parsed = parse_jsonc(with_trailing, None, Some(opts)).expect("parse with trailing comma");
    println!("With trailing comma: {:?}", parsed.value);
}