首页 > 其他分享 >实现格式化 JSON 字符串并有代码高亮的例子

实现格式化 JSON 字符串并有代码高亮的例子

时间:2022-08-25 19:13:10浏览次数:120  
标签:格式化 color substring JSON test 高亮 null cls

字符串转换 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>";
  });
}

代码高亮 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:

image

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

标签:格式化,color,substring,JSON,test,高亮,null,cls
From: https://www.cnblogs.com/Enziandom/p/16625423.html

相关文章

  • Json
    1.概述概念:JavaScriptObjectNotation(JavaScript对象表示法)。JSON和JS对象的格式一样,它使用JS语法,只不过JSON字符串中的属性名必须加双引号。json现在多用于存储和......
  • 6. json--注释
    1.前言JSON是一种纯粹的数据交换格式,其简单、灵活的特性使得JSON适合被用于各种不同的场景,例如在配置文件中、在接口返回的数据中都会用到JSON格式。然而JSON却有......
  • python json用法 dump和dumps的区别;loads()和load()的区别
    json常用方法方法作用json.dumps()将python对象编码成Json字符串json.loads()将Json字符串解码成python对象json.dump()将python中的对象转化成json储存到......
  • el-table 高亮行:只有设置表格数据才生效
    需求:表格若有数据,则默认高亮第一行。之前高亮的行,若在查询结果列表中,则保持高亮不变;反之,则高亮第一行。解决办法需求1很容易实现:created(){//默认高亮第......
  • 5. json--数组
    1.前言数组是值的有序集合,JSON中的数组与JavaScript中的数组相似,同样需要使用方括号[]定义,方括号中为数组中的若干值,值可以是JSON中支持的任意类型(例如字符串、数字......
  • 格式化xml字符串
    ///<summary>///xml帮助类///</summary>publicclassXmlHelper{///<summary>///格式化xml字符串///</summary>......
  • 2. json语法规则
    1.前言JSON的语法与JavaScript中的对象很像,在JSON中主要使用以下两种方式来表示数据:Object(对象):键/值对(名称/值)的集合,使用花括号{}定义。在每个键/值对中,以键开头......
  • 学会了JsonPath,你的Python接口脚本才算完整
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试01Jsonpat......
  • 前端解决跨域问题的方法:jsonp
    同源策略同源策略/SOP(Sameoriginpolicy)是一种约定,是浏览器最核心也最基本的安全功能,现在所有支持JavaScript的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容......
  • curl 返回json 并格式化
    应用curlhttp://url/path|python-mjson.tool例子curl'http://localhost:9090/api/v1/targets?state=active'|python-mjson.tool%Total%Received%X......