|
使用 JavaScript 美观印刷 JSON( x3 P% R' T/ O# R1 `
! P) z- R+ P8 g 解决方案:
! p9 h; m+ v2 t" S( k9 F7 u Pretty-printing 在JSON.stringify(). 第三个参数启用漂亮的打印并设置要使用的间距:" P5 b5 z5 }' T, I1 |* X
var str = JSON.stringify(obj,null,二、 / spacing level = 2' L, J5 _* S$ ^0 d# f* U
若需语法高亮,可使用一些正则表达式魔法,如下所示:
4 p4 R6 {, i9 G' M" D" T; B$ `/ s0 C( C1 J8 F$ B
- function syntaxHighlight(json) if (typeof json != 'string') json = JSON.stringify(json,undefined,2); json = json.replace(/&/g,'&').replace(//g,'> return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\"])*"(\s*?|\b(true|false|null)\b|-?\d (?:\.\d*)?(?:[eE][ \-]?\d )?)/g,function (match) var cls = 'number if (/^"/.test(match)) if (//.test(match)) cls = 'key } else cls = 'string } } else if (/true|false/.test(match)) cls = 'boolean } else if (/null/.test(match)) cls = 'null } return '' match ' }code]查看这里的实际操作:jsfiddle, w. m& E* B5 @: {& ` q3 ]
- 或以下完整片段:
$ c$ X5 X9 G# s - Hide code snippet[code]function output(inp) document.body.appendChild(document.createElement('pre')).innerHTML = inp;}function syntaxHighlight(json) json = json.replace(/&/g,'&').replace(//g,'> return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\"])*"(\s*?|\b(true|false|null)\b|-?\d (?:\.\d*)?(?:[eE][ \-]?\d )?)/g,function (match) var cls = 'number if (/^"/.test(match)) if (//.test(match)) cls = 'key } else cls = 'string } } else if (/true|false/.test(match)) cls = 'boolean } else if (/null/.test(match)) cls = 'null } return '' match ' }var obj = {a:1,'b':'foo',c:[false,'false',null,'null',{d:{e:1.3e5,f:'1.3e5'};var str = JSON.stringify(obj,undefined,4);output(str);output(syntaxHighlight(str));pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }.string { color: green; }.number { color: darkorange; }.boolean { color: blue; }.null { color: magenta; }.key { color: red; }- \+ b1 p, G1 E! k
|
|