600

Possible Duplicate:
How can I beautify JSON programmatically?

I know how to generate JSON from an object using JSON.stringify, or in my case the handy jQuery JSON from Google Code.

Now this works fine, but the output is hard to read for humans. Is there an easy way, function, or whatever to output a neatly formatted JSON file?

This is what I mean:

JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}});

gives...

"{"a":1,"b":2,"c":{"d":1,"e":[1,2]}}"

I'd like something like this instead:

{
 "a":1,
 "b":2,
 "c":{
    "d":1,
    "e":[1,2]
 }
}

E.g., with newlines and tabs added. It's much easier to read for larger documents.

I'd like to do this ideally without adding any huge libraries, for example, not Prototype, YUI, or whatever.

3
  • Maybe this will help: jsoneditoronline.org Commented Mar 2, 2016 at 19:39
  • Now you know why many prefer XML instead of JSON. Its much more readable. Commented Dec 1, 2021 at 13:35
  • 2
    @HermanVanDerBlom, a one-line XML would not be human readble either. Commented Jun 21, 2023 at 5:25

1 Answer 1

1288

JSON.stringify takes more optional arguments.

Try:

 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, 4); // Indented 4 spaces
 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, "\t"); // Indented with tab

From:

How can I beautify JSON programmatically?

It should work in modern browsers, and it is included in json2.js if you need a fallback for browsers that don't support the JSON helper functions. For display purposes, put the output in a <pre> tag to get newlines to show.

Sign up to request clarification or add additional context in comments.

4 Comments

Isn't this answer a bit inaccurate given the OP wrote his beautified version with the "e":[1,2] all on one line? Is it possible to mix indented & non-indented JSON with stringify?
Just remember to put it inside something like <pre> to get new lines.
github.com/Phrogz/NeatJSON and npm.io/package/json-beautify privide some more control & options for programmatic stringification of JSON.
You can use white-space: pre instead of a <pre>, if you prefer.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.