JSON 转换 HTML

function formatJson(json) {
let regexp = /("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g;
return json.replace(regexp, (substring) => {
let cls = "number";
if (/^"/.test(substring)) {
if (/:$/.test(substring)) {
cls = "key";
} else {
cls = "string";
}
} else if (/true|false/.test(substring)) {
cls = "boolean";
} else if (/null/.test(substring)) {
cls = "null";
}
return '<span class="' + cls + '">' + substring + "</span>";
});
}

JSON 代码高亮 CSS

pre {
width: 900px;
height: 500px;
display: block;
overflow-x: auto;
padding: 20px;
background: #2b2b2b;
color: #bababa;
font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace !important;
font-size: 14px !important;
} .string {
color: green;
} .number {
color: darkorange;
} .boolean {
color: blue;
} .null {
color: magenta;
} .key {
color: red;
}

使用效果

import jsonFile from "./data.json";

let htmlJson = formatJson(JSON.stringify(jsonFile, null, 2));
$("#app > pre").append(htmlJson);

一般拿到的 JSON 字符串是没有缩进的,所以用JSON.stringify()缩进 2 个空格,再转换 HTML:

注意:一定要把转换之后的 HTML 插入到 <pre> 标签里,否则没有缩进效果。

最新文章

  1. 你应该在开始API开发之前知道的事(下)(翻译)
  2. 谈谈Ruby中的类变量
  3. [DBW]格式化时间
  4. NFS工作原理及配置文件详解
  5. IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统)
  6. Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考
  7. Google Chrome浏览器各版本直接下载地址
  8. Backbone.js学习之View
  9. java io异步
  10. Winform使用DevExpress的WaitDialogForm画面 z
  11. sjtu1285 时晴时雨
  12. Android开发UI之给ListView设置布局动画效果
  13. Content-Type伪装 - 将jsp伪装成css
  14. JavaScript高级程序设计52.pdf
  15. (大数据工程师学习路径)第三步 Git Community Book----Git介绍
  16. Java中的Class类
  17. Hadoop集群
  18. AI_深度学习概论
  19. Java数字签名——DSA算法
  20. Basic FIFO Queue

热门文章

  1. 9V,12V输入充3.7V单节锂电池电路和芯片
  2. K近邻算法(k-nearest neighbor, kNN)
  3. 基于Nginx搭建WebDAV服务
  4. MyBatis详解(二)
  5. 深度学习之Transformer网络
  6. [python] 基于matplotlib实现树形图的绘制
  7. ng + zorro angular表格横纵向合并,横向目前是手动,纵向是自动合并,微调后可适配三大框架使用
  8. 车牌识别服务-JAVA+ONNX版本,支持全类型的车牌
  9. 浅谈Python中的包
  10. elk引入redis