fj

format-json

A JSON formatter module for various text/plain serialization styles

Showing:

Popularity

Downloads/wk

8.8K

GitHub Stars

20

Maintenance

Last Commit

7yrs ago

Contributors

3

Package

Dependencies

0

Size (min+gzip)

0.4KB

License

Type Definitions

Tree-Shakeable

No?

Categories

Readme

format-json

A JSON formatter module for various text/plain serialization styles

> var json = require('format-json');
> var data = {test: "for example", some: [{nested:0, things: []}, {}]};
> console.log(json.diffy(data));
{ "test": "for example"
, "some":
  [ { "nested": 0
    , "things": []
    }
  , {}
  ]
}
> console.log(json.plain(data));
{
  "test": "for example",
  "some": [
    {
      "nested": 0,
      "things": []
    },
    {}
  ]
}
> console.log(json.terse(data));
{"test":"for example","some":[{"nested":0,"things":[]},{}]}
> console.log(json.space(data));
{ "test": "for example", "some": [ { "nested": 0, "things": [] }, {} ] }
> console.log(json.lines(data));
{ "test": "for example"
, "some": [ { "nested": 0, "things": [] }, {} ]
}

CLI

We ship a command-line binary format-json. To keep dependencies minimal it comes without an argument processor, so it's very simplistic.

By defaults it works over stdin/stdout, producing diffy output:

$ format-json < path/to/file.json
$ some_pipe_chain | format-json

If you want to specify a formatter, you can use the file-processing variant:

$ format-json [format <terse|plain|space|lines|diffy>] path/to/file.json

Why?

For short: diffs in version controlled JSON is what prompted json.diffy.

The comma-first style may look wonky at first, but it's a compromise that helps produce diffs where a change (addition, change or deletion) of one property has no affect on surrounding lines to reduce the amount of diff noise.

Having used this format for a while now, I also appreciate how you get straight left margins for Objects and Arrays alike.

Not convinced? Then please don't use it! :-)

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial