pretty-print JSON using JavaScript pretty-print JSON using JavaScript javascript javascript

pretty-print JSON using JavaScript


Pretty-printing is implemented natively in JSON.stringify(). The third argument enables pretty printing and sets the spacing to use:

var str = JSON.stringify(obj, null, 2); // spacing level = 2

If you need syntax highlighting, you might use some regex magic like so:

function syntaxHighlight(json) {    if (typeof json != 'string') {         json = JSON.stringify(json, undefined, 2);    }    json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');    return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {        var cls = 'number';        if (/^"/.test(match)) {            if (/:$/.test(match)) {                cls = 'key';            } else {                cls = 'string';            }        } else if (/true|false/.test(match)) {            cls = 'boolean';        } else if (/null/.test(match)) {            cls = 'null';        }        return '<span class="' + cls + '">' + match + '</span>';    });}

See in action here: jsfiddle

Or a full snippet provided below: