16

Seems to me that pretty-printing JSON is a simple enough task that JavaScript should be able to handle it. Has anyone ever written (or run across) a JavaScript function to do this?

asked Jan 19, 2011 at 19:32

7 Answers 7

13

An easy way to do this is to execute:

JSON.stringify(data, null, " ");

where data is the json object you want to print pretty.

Not every browser contains JSON though. You can include json.js by Douglas Crockford which add global JSON object if it is not supported natively by the browser.

answered Apr 2, 2011 at 15:11
Sign up to request clarification or add additional context in comments.

2 Comments

JSON.stringify is not terribly pretty, even with extra spaces. I found the vkbeautify link below to be a great solution.
this seems like a bad solution, since subsequent calls to pretty print JSON might be then bastardized
8

I use this bookmarklet code on my browsers to make the JSON paragraph readable

javascript:(function(){document.body.firstChild.innerHTML = JSON.stringify(JSON.parse(document.body.firstChild.innerHTML), null, 4);})();

Adding a bookmarklet is easy - right click on bookmarks bar - Add/New - provide a name and paste js in url / location box

As current day browsers are putting the json response in a <pre> tag inside, i use body.firstChild

answered Aug 27, 2016 at 16:22

1 Comment

This is awesome, still working in 2023 (if you ignore the word 'bookmarklet') !
3

take a look at vkbeautify.js plugin

http://www.eslinstructor.net/vkbeautify/

it provides pretty print for both JSON and XML text.

written in plain javascript, small and fast.

answered Jan 25, 2012 at 20:47

2 Comments

I really liked this solution. It worked great with node and I see they also have a browser version.
Disclaimer: vkbeautify.json is a wrapper to JSON.stingify
1
answered Jan 19, 2011 at 19:35

Comments

1

If you want this for yourself (debugging purposes) you can use Greasemonkey: http://misc.slowchop.com/misc/wiki/HumanReadableJSONGreasemonkey

If you want the output for your users: http://jsonformatter.curiousconcept.com/

answered Jan 19, 2011 at 19:36

Comments

1

What I ended up doing is installing the JSONView add-on for Mozilla. Not perfect, but it gets done what I needed done.

answered Apr 14, 2011 at 15:25

Comments

1

You can give this a try it will add in some nice CSS.

<pre style="font-family: Courier;background: #f4f4f4;border: solid 1px #e1e1e1;float: left;width: auto;">
 JSON.stringify(data, null,' ').replace('[', '').replace(']', '')
</pre>
answered Sep 7, 2016 at 0:27

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.