fjson

A Rust library for parsing and formatting JSON with C-style comments and trailing commas

Usage

Given the following input:

```jsonc // This is a JSON value with comments and trailing commas {

/* The project name is fjson */
"project": "fjson",
"language": "Rust",
"license": [
    "MIT",
],

// This project is public. "public": true, } ```

Format to JSONC

Format to pretty JSONC, intended for human viewing:

rust let output = fjson::to_jsonc(input).unwrap(); println!("{}", output);

Prints:

```jsonc // This is a JSON value with comments and trailing commas { /* The project name is fjson */ "project": "fjson", "language": "Rust", "license": ["MIT"],

// This project is public. "public": true } ```

Format to valid, pretty JSON

Format to pretty JSON, intended for human viewing:

rust let output = fjson::to_json(input)?; println!("{}", output);

Prints:

jsonc { "project": "fjson", "language": "Rust", "license": ["MIT"], "public": true }

Format to valid, compact JSON

Format to compact JSON, intended for computer consumption:

rust let output = fjson::to_json_compact(input)?; println!("{}", output);

Prints:

json {"project":"fjson","language":"Rust","license":["MIT"],"public":true}

Deserialize with Serde

To parse JSON with C-style comments and trailing commas, but deserialize via serde, this can be accomplished with the following:

```rust use serde::Deserialize;

[derive(Debug, Deserialize)]

struct Project { project: String, language: String, license: Vec, public: bool, }

let output = fjson::tojsoncompact(input)?; let project: Project = serdejson::fromstr(&output)?; println!("{:#?}", project); ```