当前位置:   article > 正文

vue-json-viewer实现JSON效果【高亮、可折叠、可复制】

vue-json-viewer

利用vue-json-viewer插件,利用这个插件,可方便快速实现 高亮,JSON折叠,copy 三种功能 !!!

官网地址:https://www.npmjs.com/package/vue-json-viewer

 
效果展示
先放最终效果:

 

效果看完,那么我们来上干货了!

安装vue-json-viewer插件
基于npm的安装:

$ npm install vue-json-viewer --save
基于yarn的安装:

$ yarn add vue-json-viewer
代码实现
在script 里面导入包

  1. import Vue from 'vue'
  2. import JsonViewer from 'vue-json-viewer'
  3.  
  4. // Import JsonViewer as a Vue.js plugin
  5. Vue.use(JsonViewer)
  6. // or 
  7. // components: {JsonViewer}
  8. 在template里面加入如下一种: 其中jsonData必须是json类型的数据。
  9. <json-viewer :value="jsonData"></json-viewer>
  10.  
  11. <hr />
  12.  
  13. <json-viewer
  14.   :value="jsonData"
  15.   :expand-depth=5
  16.   copyable
  17.   boxed
  18.   sort></json-viewer>


然后静态文件和引入都写好后,在script里面,定义jsonData,为它赋值

1、写死的实现:

2、动态赋值实现

  1. // 任务详情
  2.     getJobDetail(index, row) {
  3.       getJobDetail({
  4.         jobName: row.jobName,
  5.         jobGroupName: row.jobGroup
  6.       }).then((res) => {
  7.         this.jsonData = res.data.paramJson
  8.       })
  9.     }


这个方法是,调用任务详情接口,返回一个任务的详情,赋值给this.jsonData。即可实现接口赋值了。

最终。简单的实现方式就完成了!

可选配置说明

  1. <json-viewer
  2.   :value="jsonData"
  3.   :expand-depth=5
  4.   copyable
  5.   boxed
  6.   sort></json-viewer>


 扩展
因为必须是JSON类型的数据才能展示,有些情况得到的是string类型的json数据,那么需要将string类型的json数据转换为json类型。

 

下面我提供两个方法,供大家参考选用,一个是判断该string类型的数据是否是json;另一个方法是string转json

判断string是否是json格式的字符串

  1. function isJSON(str) {
  2.     if (typeof str == 'string') {
  3.         try {
  4.             var obj=JSON.parse(str);
  5.             if(typeof obj == 'object' && obj ){
  6.                 return true;
  7.             }else{
  8.                 return false;
  9.             }
  10.  
  11.         } catch(e) {
  12.             console.log('error:'+str+'!!!'+e);
  13.             return false;
  14.         }
  15.     }
  16.     console.log('It is not a string!')
  17. }

string类型的json字符串,转换为json格式

JSON.parse(str)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/76832
推荐阅读
相关标签
  

闽ICP备14008679号