JSON.stringify输出到div以漂亮的打印方式

我通过JSON.stringify一个json对象

 result = JSON.stringify(message, my_json, 2) 

在上面的参数2应该相当打印结果。 它做到这一点,如果我做一些像alert(result) 。 不过,我想通过将其附加到一个div内输出给用户。 当我这样做时,我只能看到一行。 (我不认为这是工作,因为rest和空间不被解释为HTML?)

 { "data": { "x": "1", "y": "1", "url": "http://url.com" }, "event": "start", "show": 1, "id": 50 } 

有没有办法将JSON.stringify的结果以漂亮的打印方式输出到div?

请使用<pre>标签

演示: http : //jsfiddle.net/K83cK/

确保JSON输出位于<pre>标记中。

完全公开我是这个包的作者,但另一种方式输出JSON或JavaScript对象的可读方式完成与跳过部分,折叠等是nodedumphttps://github.com/ragamufin/nodedump

如果这真的是一个用户,而不仅仅是输出文本,你可以使用这样一个库,如https://github.com/padolsey/prettyprint.js输出为HTML表格。;

使用样式white-space: pre<pre>标签之前,也会修改可能不希望的文本格式。

考虑你的REST API返回:

 {"Intent":{"Command":"search","SubIntent":null}} 

然后,您可以执行以下操作,以便以不错的格式进行打印:

 <pre id="ciResponseText">Output will de displayed here.</pre> var ciResponseText = document.getElementById('ciResponseText'); var obj = JSON.parse(http.response); ciResponseText.innerHTML = JSON.stringify(obj, undefined, 2);