Problem
I stringify a json object using JSON.stringify.
result = JSON.stringify(message, my_json, 2)
The 2 in the preceding parameter is designed to make the outcome look nice. If I do something like alert, it does this (result). However, I want to output this to the user by appending it inside a div. When I do this I get just a single line showing up. (I don’t think it is working because the breaks and spaces are not being interpreted as html?)
{ "data": { "x": "1", "y": "1", "url": "http://url.com" }, "event": "start", "show": 1, "id": 50 }
Is there a method to export the JSON.stringify result to a div in a nice print format?
Asked by Alexis
Solution #1
Please make use of the pre> tag.
demo : http://jsfiddle.net/K83cK/
Answered by Diode
Solution #2
Ensure that the JSON output is included in a pre> tag.
Answered by Adam
Solution #3
If your pre> tag is displaying a single line of JSON because that’s how the string is already delivered (through an api or a function/page outside of your control), reformat it as follows:
HTML:
<pre id="json">{"some":"JSON string"}</pre>
JavaScript:
(function() {
var element = document.getElementById("json");
var obj = JSON.parse(element.innerText);
element.innerHTML = JSON.stringify(obj, undefined, 2);
})();
or jQuery:
$(formatJson);
function formatJson() {
var element = $("#json");
var obj = JSON.parse(element.text());
element.html(JSON.stringify(obj, undefined, 2));
}
Answered by thinkOfaNumber
Solution #4
My proposal is based on the following:
Answered by gaetanoM
Solution #5
Complete transparency This package was written by myself, but nodedump, https://github.com/ragamufin/nodedump, is another way to export JSON or JavaScript objects in a legible format, replete with the ability to skip parts, collapse them, and so on.
Answered by ragamufin
Post is based on https://stackoverflow.com/questions/16862627/json-stringify-output-to-div-in-pretty-print-way