Skip to content

Library and script to pretty-print JSON with values aligned together.

Notifications You must be signed in to change notification settings

sylido/node-json-align

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#json-align Build status npm package

This module provides a function and a command-line script that pretty-print JSON strings with consecutive values aligned at the same column for improved readability.

Before:

{
    "name": "json-align",
    "author": "James Nylen <[email protected]>",
    "description": "Library and script to pretty-print JSON files with values aligned together.",
    "version": "...",
    "repository": {
        "type": "git",
        "url": "https://github.com/nylen/node-json-align"
    },
...

After:

{
    "name"        : "json-align",
    "author"      : "James Nylen <[email protected]>",
    "description" : "Library and script to pretty-print JSON files with values aligned together.",
    "version"     : "...",
    "repository"  : {
        "type" : "git",
        "url"  : "https://github.com/nylen/node-json-align"
    },
...

Based on Douglas Crockford's json2.js.

##Usage

In code (first do npm install json-align):

JSON.stringifyAligned = require('json-align');

On the command line (first do sudo npm install -g json-align):

json-align --help

The command-line script will output to stdout unless the -i/--in-place option is given.

##Parameters

JSON.stringifyAligned(obj, [replacer], [spaces], [alignAllValues])
// or
JSON.stringifyAligned(obj, alignAllValues, [spaces])
  • replacer: Like in JSON.stringify, this is a value transformation function, or an array of properties to serialize.
  • spaces: Like in JSON.stringify, a number of spaces (or string) to indent by (the default is 4)
  • alignAllValues: By default, a new alignment group will be started each time an array or object value is encountered. If this option is set to true, then each object will have all of its values aligned together.

##Examples

JSON.stringifyAligned({abc: 1, defgh: 2})
{
    "abc"   : 1,
    "defgh" : 2
}
JSON.stringifyAligned({abc: 1, defgh: [2,3,4], ijk: 5})
{
    "abc"   : 1,
    "defgh" : [
        2,
        3,
        4
    ],
    "ijk" : 5   // Note that this value is not aligned with the first two,
                // since there is an array or object value before it.
}
JSON.stringifyAligned({abc: 1, defgh: [2,3,4], ijk: 5}, null, 2, true)
{
  "abc"   : 1,
  "defgh" : [
    2,
    3,
    4
  ],
  "ijk"   : 5
}

About

Library and script to pretty-print JSON with values aligned together.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.8%
  • Shell 2.2%