在JavaScript中美化JSON数组

20

可能是重复问题:
使用JavaScript漂亮的打印JSON

我正在开发一个项目,旨在帮助未来平台的开发人员分析和理解JSON数组。我参考了Facebook开发者网站上的Graph Explorer页面,此处可见,并希望输出我们的数组以漂亮的方式呈现,正确缩进并换行,就像在这个页面一样。

数组被输出到一个


请参见https://dev59.com/kHE85IYBdhLWcg3wx2n2。 - Denys Séguret
还有http://www.jsonlint.com/ - 如果这能减轻你的工作负担的话! :) - Henrik Andersson
@limelights 看起来是个不错的工具,但数组始终是有效的,所以我们不需要测试它们,只需要更整洁地可视化它们。 - Ryan Brodie
@RyanBrodie 是的,但我认为它将数组可视化得相当整洁,尽管不完全符合您的要求。 - Henrik Andersson
@limelights 我们正在使用HTML 5的Web Sockets处理一系列数组,而不仅仅是一个,因此否则该解决方案将是完美的。 - Ryan Brodie
1个回答

65

您可以使用 JSON.stringify

JSON.stringify(jsonobj,null,'\t')

请查看演示

更新:如果您没有jsonobj,而是有json字符串,则在使用stringify函数之前,请使用以下代码将json字符串转换为json对象:

jsonobj = JSON.parse(jsonstring);

不工作 - 输出像 "{\"streamtype\":\"returnAll\"},作为一个字符串,没有换行或制表符。 - Ryan Brodie
2
@RyanBrodie,你需要传递一个Object,而不是一个String,这就是为什么你得到了这样的结果。要将字符串转换为对象,请使用JSON.parse(yourstring),然后将其传递给JSON.stringify函数。所以你需要这样做:JSON.stringify(JSON.parse(yourstring),null,'\t') - Engineer
1
对我不起作用。我尝试了这个,它仍然没有格式化:$("#transactionResponse").show().html(JSON.stringify(data, null, '\t'));其中data是我的jQuery #.ajax()回调中的响应JSON。 - PositiveGuy
谢谢 @工程师! - ScanQR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接