首页 >web前端 >js教程 >如何在 JavaScript 中漂亮地打印 JSON 并添加语法突出显示?

如何在 JavaScript 中漂亮地打印 JSON 并添加语法突出显示?

Linda Hamilton
Linda Hamilton原创
2024-12-19 22:34:11524浏览

How can I pretty-print JSON in JavaScript and add syntax highlighting?

在 JavaScript 中漂亮地打印 JSON

以人类可读的格式显示 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(/&amp;/g, '&amp;amp;').replace(/</g, '&amp;lt;').replace(/>/g, '&amp;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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn