以人类可读的格式显示 JSON 对于理解和调试数据至关重要。在 JavaScript 中,这是通过原生 JSON.stringify() 函数实现的。
原生漂亮打印:
JSON.stringify() 的第三个参数启用漂亮- 打印并指定缩进级别。例如:
var str = JSON.stringify(obj, null, 2); // spacing level = 2
这将输出带有 2 个空格缩进的 JSON,使其更易于阅读。
语法突出显示:
For更精细的格式,您可以使用正则表达式来突出显示 JSON 中的不同元素字符串。
function syntaxHighlight(json) { 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 '<span class="' + cls + '">' + match + '</span>'; }); }
此函数用 HTML 标签替换某些模式,以将颜色等样式应用于不同的 JSON 元素。
完整代码片段:
这是一个综合示例:
function output(inp) { document.body.appendChild(document.createElement('pre')).innerHTML = inp; } function syntaxHighlight(json) { return json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;'); } 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));
此脚本解析 JSON 对象,漂亮地打印它,并将其与语法突出显示的 JSON 一起显示。
以上是如何在 JavaScript 中漂亮地打印 JSON 并添加语法突出显示?的详细内容。更多信息请关注PHP中文网其他相关文章!