vue配合element-ui设置查看表单的JSON数据

由于是演示,所以全局引用了element-ui。核心是格式化JSON的函数getJsonData。配合一些样式设置,标记出对应的数据类型。

// 处理json数据,采用正则过滤出不同类型参数
getJsonData (json) {if (typeof json !== 'string') {json = JSON.stringify(json, undefined, 2)}json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')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>'})
}

下面是全部代码,为了不让样式出现污染问题,设置了scoped。但是element-ui的样式貌似和scoped的有些冲突。dialog的自定义样式属性没有生效,只能使用深度选择器来解决了。或者去掉scoped,就怕出现样式污染。

<template><div><div><el-row><el-col :span="12"><!-- 表单 --><div><el-form label-width="80px"><el-form-item label="JSON数据"><el-inputv-model="input"placeholder="请输入内容"size="small"></el-input></el-form-item></el-form></div></el-col><!-- 查看JSON格式按钮 --><el-col :span="4"><el-button type="primary" @click="getJson">查看JSON</el-button></el-col></el-row></div><!-- dialog --><el-dialogtitle="JSON信息":visible.sync="dialogVisible"width="50%":before-close="handleClose"centerclass="json-dialog"><pre v-html="showJson" class="json-box"></pre><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取 消</el-button><el-button type="primary" @click="dialogVisible = false">确 定</el-button></span></el-dialog></div>
</template><script>
export default {data () {return {dialogVisible: false,input: `{  "resultcode":"200",  "reason":"成功的返回",  "result":{  "company":"顺丰",  "com":"sf",  "no":"575677355677",  "list":[  {  "datetime":"2020-06-25 10:44:05",  "remark":"已收件",  "zone":"台州市"  },  {  "datetime":"2020-06-25 11:05:21",  "remark":"快件在 台州 ,准备送往下一站 台州集散中心",  "zone":"台州市"  }  ],  "status":1  },  "error_code":0  }`,showJson: null}},methods: {handleClose (done) {this.$confirm('确认关闭?').then(_ => {done()}).catch(_ => {})},getJson () {this.dialogVisible = trueconst json = JSON.parse(this.input)this.showJson = this.getJsonData(json)},// 处理json数据,采用正则过滤出不同类型参数getJsonData (json) {if (typeof json !== 'string') {json = JSON.stringify(json, undefined, 2)}json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')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>'})}}
}
</script><style lang="less" scoped>
.json-dialog {/deep/ .json-box {.string {color: green;}.number {color: darkorange;}.boolean {color: blue;}.null {color: magenta;}.key {color: red;}}
}
</style>

HTML显示JSON数据格式相关推荐

  1. android 将数据转换成JSON数据格式并使用JSONObject解析JSON格式的数据

    比起XML文件解析,JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量.同时它也有缺点,Json数据的语义性较差,看起来没有XML直观.现在JSON已经被大多数开发人员所接受,在网络 ...

  2. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  3. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

    json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...

  4. MySql 5.7 json数据格式 增删改查 操作 (不定时更新)

    2019独角兽企业重金招聘Python工程师标准>>> 测试的表的结构如下: CREATE TABLE `userinfo` (`id` int(11) NOT NULL,`user ...

  5. 百度搜索排名API接口PC返回JSON数据格式

    百度搜索排名API接口返回JSON数据格式 写个笔记, 记录一下 https://www.baidu.com/s?wd=新信息&pn=50&rn=50&tn=json 参数说明 ...

  6. 详解JSON数据格式

    JSON数据格式 JSON 的由来 JSON 的基本语法 解析与序列化 JSON 的由来 在目前的开发中,JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据 ...

  7. XML和JSON数据格式对比

    概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  8. Ajax---使用json数据格式输出数据

    将Ajax得到的数据使用json数据格式输出 1.项目清单 2.代码 2.1.Procince类代码 2.2.ProvinceDao类代码 2.3.QueryJsonServlet类代码 2.4.Te ...

  9. JSON 数据格式解析(转)

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

最新文章

  1. 如何找回RAID1丢失的数据
  2. Redis、Kafka 和 Pulsar 消息队列对比,写得太好了!
  3. (000) java后台开发之指导思想
  4. 2021年度中国计算机大会的技术论坛,值得一谈
  5. curl_exec() 执行的时候发送不出去_为什么端口明明开着,nmap却扫描不出来,看老司机怎么指点迷津...
  6. CentOS查看每个进程的网络流量
  7. python输出字典的前十项,从字典列表中获取前5个值?
  8. (pytorch-深度学习)使用pytorch框架nn.RNN实现循环神经网络
  9. python3全栈开发-并发编程,多进程的基本操作
  10. 为什么 Deno 没有众望所归?超越 Node.js 还要做些什么?
  11. 教你从redhat官网获取ISO镜像
  12. 【成功的忙人】在北京30套房的小哥:人一闲,就废了!
  13. java生成树形Excel_java poi导出树形结构到excel文件
  14. 【LInux入门手册】目录结构 常用指令与操作 vim与tmux
  15. dedecms友情链接字数修改
  16. 【C语言程序设计·考试复习】视频讲解课程合集
  17. java计算机毕业设计合同管理MyBatis+系统+LW文档+源码+调试部署
  18. 值得拥有的一份详细的计算机系统硬件结构清单:系统总线、存储器、I/O设备
  19. Java官方教程(三-3)相等 关系和条件运算符(2020.12.20)
  20. Google Test简述

热门文章

  1. ajax从新浪获取实时股票数据
  2. 亚马逊云科技:一杯好牛奶背后的AI引擎
  3. 关于win10无法下载steam解决方法(如何国外网站下载)
  4. 用计算机算账老是出负数是怎么回事,怎样处理账务上出现存货负数的情况
  5. 堆溢出-House of orange 学习笔记(看雪论坛)
  6. ​药师帮冲刺港股:年亏5亿 百度DCM复星医药是股东
  7. 【金猿案例展】荣乌高速公路:基于“互联网+”的高速公路机电设备运营监测平台建设...
  8. 初识 OKR/OKR是什么
  9. 苏州新导智慧养老解决方案解决养老一切问题,智能化智慧养老方案
  10. perf基本使用与简单介绍