JSONObject work = JSONObject.fromObject("{\"hi\":\"there\",\"more\":\"stuff\"}");
log.info("WORK="+work.toString(4));
20
显示对象以进行调试的最简单方法:
console.log("data",data) // lets you unfold the object manually
如果要在DOM中显示对象,则应考虑它可能包含将被解释为HTML的字符串 . 因此,你需要do some escaping ...
var s = JSON.stringify(data,null,2) // format
var e = new Option(s).innerHTML // escape
document.body.insertAdjacentHTML('beforeend','<pre>'+e+'</pre>') // display
24 回答
Use Newtonsoft.Json dll. 这在IE和Chrome中运行良好
将此代码放在剃刀视图中
这是用户123444555621非常适合终端的HTML版本 . 方便调试节点脚本:
用法:
不满意Ruby的其他漂亮的打印机,我写了自己的(NeatJSON)然后ported it to JavaScript包括a free online formatter . 该代码在MIT许可下是免费的(非常宽松) .
功能(全部可选):
设置线宽并以一种方式进行换行,使对象和数组在适合时保持在同一条线上,当它们不适合时,每行包装一个值 .
如果您愿意,可以对对象键进行排序 .
对齐对象键(排列冒号) .
将浮点数格式化为特定的小数位数,而不会弄乱整数 .
'Short'包装模式将开始和结束括号/大括号放在与值相同的行上,提供某些偏好的格式 .
对数组和对象,括号之间,冒号和逗号之前/之后的间距进行粒度控制 .
功能可供Web浏览器和Node.js使用 .
我将复制源代码,这不仅仅是一个库的链接,但我鼓励你去GitHub project page,因为它会保持最新,下面的代码不会 .
这是一个用React编写的简单JSON格式/颜色组件:
看到它在此CodePen中工作:https://codepen.io/benshope/pen/BxVpjo
希望有所帮助!
如果你正在寻找一个很好的库来在网页上美化json ......
Prism.js非常好 .
http://prismjs.com/
我发现使用JSON.stringify(obj,undefined,2)来获取缩进,然后使用prism添加主题是一个很好的方法 .
如果您通过ajax调用加载JSON,那么您可以运行Prism的一个实用程序方法来美化
例如:
Pretty-printing is implemented natively in JSON.stringify() . 第三个参数启用漂亮打印并设置要使用的间距:
如果你需要语法高亮,你可能会使用一些正则表达式魔法:
在这里看到:jsfiddle
Or a full snippet provided below:
您可以使用
console.dir()
,这是console.log(util.inspect())
的快捷方式 . (唯一的区别是它绕过了对象上定义的任何自定义inspect()
函数 . )它使用 syntax-highlighting , smart indentation , removes quotes from keys ,只是让输出变得漂亮 .
并为命令行:
cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"
更好的方法 .
Prettify JSON Array in Javascript
我使用的是JSONView Chrome extension(它很漂亮:):
编辑:添加
jsonreport.js
我还发布了一个在线独立的JSON漂亮打印查看器jsonreport.js,它提供了一个人类可读的HTML5报告,可用于查看任何JSON数据 .
您可以在New JavaScript HTML5 Report Format中阅读有关格式的更多信息 .
出于调试目的,我使用:
https://getfirebug.com/wiki/index.php/Console_API
https://developer.mozilla.org/en-US/docs/DOM/console
效果很好:
在这里阅读更多:https://developer.mozilla.org/pt-BR/docs/Web/API/Console/table
如果您需要在textarea中工作,则接受的解决方案将无效 .
<textarea id='textarea'></textarea>
$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));
如果以HTML格式显示,您应该添加一个应答器
<pre></pre>
例:
非常感谢@all!根据之前的答案,这是另一种提供自定义替换规则作为参数的变体方法:
我今天遇到了一个问题@ Pumbaa80 's code. I' m试图将JSON语法高亮显示应用于我在Mithril视图中渲染的数据,因此我需要为
JSON.stringify
输出中的所有内容创建DOM节点 .我将真正长的正则表达式分解为其组成部分 .
Github上下文中的代码here
如果你使用net.sf.json,你可以如下打印(使用4空格缩进):
显示对象以进行调试的最简单方法:
如果要在DOM中显示对象,则应考虑它可能包含将被解释为HTML的字符串 . 因此,你需要do some escaping ...
根据Pumbaa80的回答,我修改了代码以使用console.log颜色(肯定是在Chrome上工作),而不是HTML . 输出可以在控制台内看到 . 您可以编辑函数内的_variables,添加更多样式 .
这是您可以使用的书签:
用法:
编辑:我只是试图在变量声明后用这一行转义%符号:
但我发现Chrome不支持在控制台中进行%转义 . 奇怪......也许这将在未来发挥作用 .
干杯!
我建议使用 HighlightJS . 它使用 same principle 作为接受的答案,但也适用于 many other languages ,并且具有 many pre-defined colour schemes . 如果使用RequireJS,则可以生成兼容模块
Generation依赖于Python3和Java . 添加
-n
到生成非缩小版本 .您可以使用JSON.stringify(您的对象,null,2)第二个参数可以用作替换器函数,它将key和Val作为参数 . 这可以用于您想要修改JSON对象中的内容 .
用户Pumbaa80的答案很棒,如果你有一个 object 你想要漂亮的打印 . 如果您要从一个想要打印的有效JSON string 开始,则需要先将其转换为对象:
这将从字符串构建一个JSON对象,然后使用JSON stringify的漂亮打印将其转换回字符串 .
Douglas Crockford在JavaScript库中的JSON将通过stringify方法打印JSON .
您可能还会发现这个旧问题的答案很有用:How can I pretty-print JSON in (unix) shell script?
这很好:
https://github.com/mafintosh/json-markup来自
mafintosh
HTML
示例样式表可以在这里找到
以下是如何在不使用本机功能的情况下进行打印 .