我可以帮助您编写程序来美化JSON格式的文本。

472

你知道有没有针对JavaScript的“JSON美化器”吗?

来自:

{"name":"Steve","surname":"Jobs","company":"Apple"}

{
  "name" : "Steve",
  "surname" : "Jobs",
  "company" : "Apple"
}

举个例子

some_magic(jsonObj); // return beautified JSON

你为什么需要通过编程来美化它?它是要在网页上显示吗? - SeanJA
3
看到这么多答案中引用的“解决方案”,都在解决一个已经被标准API解决的问题,我感到相当有趣。这给我们所有人上了一课:在寻求或实现需求的解决方案之前,先阅读现有API的文档;-) - NickFitz
1个回答

958

编程格式化解决方案:

许多现代浏览器(包括 IE8)支持的 JSON.stringify 方法可以输出美观的 JSON 字符串:

JSON.stringify(jsObj, null, "\t"); // stringify with tabs inserted at each level
JSON.stringify(jsObj, null, 4);    // stringify with 4 spaces at each level
演示:http://jsfiddle.net/AndyE/HZPVL/

这种方法也包含在json2.js中,以支持旧版浏览器。

手动格式化解决方案

如果您不需要以编程方式执行此操作,请尝试JSON Lint。 它不仅可以美化您的JSON,还可以同时验证它。


23
太棒了,谢谢!(值得一提的是,在 CSS 中需要加入 white-space:pre。) - timborden
19
在 HTML 页面上,将你的输出内容用 <pre></pre> 标签包裹起来。 - codefreak
我使用JSON.stringify和toastr进行调试输出。实时示例 - absynce
1
知道null, 2,但不知道'\t'也可以工作。太棒了! - tandrewnichols
@luckybroman5 繁琐吗?字面上的复制、粘贴、点击... - pee2pee
显示剩余3条评论

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