json5format is a general purpose Rust library that formats JSON5 (a.k.a., "JSON for Humans"), preserving contextual line and block comments.
json5format Rust library
json5format library includes APIs to customize the document format, with style options configurable both globally (affecting the entire document) as well as tailoring specific subsets of a target JSON5 schema. (See the Rust package documentation for more details and examples.) As of version 0.2.0, public APIs allow limited support for accessing the information inside a parsed document, and for injecting or modifying comments.
formatjson5 command line tool
json5format package also bundles an example command line tool,
formatjson5, that formats JSON5 documents using a basic style with some customizations available through command line options:
$ cargo build --example formatjson5 $ ./target/debug/examples/formatjson5 --help formatjson5 [FLAGS] [OPTIONS] [files]... FLAGS: -h, --help Prints help information -n, --no_trailing_commas Suppress trailing commas (otherwise added by default) -o, --one_element_lines Objects or arrays with a single child should collapse to a single line; no trailing comma -r, --replace Replace (overwrite) the input file with the formatted result -s, --sort_arrays Sort arrays of primitive values (string, number, boolean, or null) lexicographically -V, --version Prints version information OPTIONS: -i, --indent <indent> Indent by the given number of spaces [default: 4] ARGS: <files>... Files to format (use "-" for stdin)
NOTE: This is not an officially supported Google product.