实现 JSON 高亮
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> 标签里,否则没有缩进效果。
实现 JSON 高亮的更多相关文章
- yformater - chrome谷歌浏览器json格式化json高亮json解析插件
yformater是一款chrome浏览器插件,用来格式化(高亮)服务端接口返回的json数据. 实际上小菜并不是第一个写这种插件的,但是现有的chrome json格式化插件实在是不太好用,索性小菜 ...
- JSON高亮格式化页面显示
高亮CSS定义: <style type="text/css"> pre {outline: 1px solid #ccc; padding: 5px; margin: ...
- UltraEdit 21.3 增加 mssql, json 高亮
1. %appdata%\IDMComp\UltraEdit 2. 将msql2k.uew, json.uew 放到 wordfiles 目录即可 msql2k json的uew 下载地址如 ...
- 有强迫症的我只能自己写一个json格式化工具
缘由 为什么博客园的markdown解析出问题了啊?好奇怪啊! 一直以来在编码规范界有2大争论不休的话题,一个是关于是用空格缩进还是tab缩进的问题,一个是花括号是否换行的问题,笔者是tab缩进和花括 ...
- eclipse 安装 json Editor Plugin的方法
json Editor Plugin是一款可以显示JSON高亮语法,折叠的eclipse插件.但目前网上的安装方法少,且几乎都无效.我按照官网的步骤安装很容易就成功了,现在贴出步骤供大家参考: 1.在 ...
- 页面json 格式化+颜色高亮
背景 应答为json,为了更好的展示在前端页面,需要对其格式化加颜色高亮 效果图 步骤 js中添加 function output(inp) { document.body.appendChild(d ...
- 【转】json格式化、高亮库jsonFormater
http://leo108.com/pid-1996.asp JsonFormater 基于jQuery的json格式化.高亮库 核心代码参考天马行空工作室,本人只做了模块化和一些代码优化. demo ...
- VSCode添加Sciter脚本Tiscript高亮支持
Sciter中的Tiscript脚本不是标准的Javascript,是对Javascript的扩展.所以在常用的编辑器和IDE上对于高亮的支持很不好. 不过在Sciter论坛中找到了在VSCode上的 ...
- ios项目里扒出来的json文件
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- 简单一招实现json数据可视化
开发一个内部功能时碰到的需求,要把json数据在页面上展示出来,平时浏览器会安装jsonView这样的扩展来看json数据,但是程序要用到的话该怎么办呢?今天在网上搜索的时候,发现了这个小技巧,分享一 ...
随机推荐
- MetaTown:一个可以自己构建数字资产的平台
摘要:华为云Solution as Code重磅推出<基于MetaTown构建数字资产平台>解决方案. 本文分享自华为云社区<基于MetaTown构建数字资产平台>,作者: 阿 ...
- MySQL约束条件(主键-自增-默认值)
目录 一:MySQL约束条件 1.什么是约束条件? 二:unsigned(去除正负号) 三:zerofill(不够位数零填充) 四:not null(非空) 1.使用约束条件(不添加会报错) 五:de ...
- ExcelToObject.NPOI 两行代码导出Excel报表、读取Excel数据
简介 作为一个dotnet开发者,经常面对业务系统中大量报表导入导出,经常写了一堆的重复代码.最近发现一个操作excel的神器:ExcelToObject.NPOI,两行代码就能导出一个报表,两行代码 ...
- PhaApi NOTORM 实现分表分库
通过自增ID取模要分表的数量,便可得到表名.例如log表分成100张表:log_1,log2...,log100. 每次数据库CURD都先通过获取ID分配到相对应的表,例如:id=66,取模后的结果是 ...
- uniapp中封装一个弹框组件
第一步:在components下创建 popup.vue子组件: popup.vue中 <template> <view> <view class="popus ...
- CMS可视化---ECharts图表
一.ECharts介绍 ECharts,全称Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,能够流畅的运行在PC以及移动设备上,兼容当前绝大部分浏览器.为我们许 ...
- [OpenCV实战]30 使用OpenCV实现图像孔洞填充
在本教程中,我们将学习如何填充二值图像中的孔.考虑下图左侧的图像.假设我们想要找到一个二值掩模,它将硬币与背景分开,如下图右侧图像所示.在本教程中,包含硬币的圆形区域也将被称为前景. 请注意,硬币的边 ...
- 原生js实现rsa加密
原生js实现rsa加密 示例 createNewUserKey().then(function(keyPairs) { encrypt("this is origin text", ...
- js鼠标轨迹特效
今天无意中访问到了开源社区 (apiopen.top)的主界面,发现鼠标跟随的特效不错(残留轨迹),弄下来玩玩 上代码 整合后只需要两部分,导入JS依赖后,在html 添加 id 为 mouseCan ...
- Siri Shortcut
AppDelegate.m //#pragma mark - INUIAddVoiceShortcutButtonDelegate //新添加 - (void)presentAdd ...