当前位置: 首页 > news >正文

vue3--实现vue2插件JSONPathPicker的路径获取功能

背景

最近在进行vue2项目升级为vue3。
在项目中需要获取json某些字段的路径,vue2中使用JSONPathPicker ,但是该插件不支持vue3,vue3中也没有相应的模块有该功能。

实现目标:

原vue2中JSONPathPicker实现的功能:

查找候选插件

  1. json-tree-view-vue3 git仓库地址
    在这里插入图片描述 官方文档中,说可以通过selected事件,获取相应的路径:

    • 测试代码:
      <template><div class="demo"><JsonTreeView :json="json" v-on:selected="s" /></div>
      </template><script>
      /* eslint-disable */
      import { JsonTreeView } from "json-tree-view-vue3";
      import 'json-tree-view-vue3/dist/style.css'
      const ss = '{"string":"text","number":123,"boolean":true,"null":null,"array":["A","B","C"],"object":{"prop1":"value1","nestedObject":{"prop2":"value2"}}}'export default {name : 'demo',components:{"JsonTreeView":JsonTreeView,},data () {return {json:ss};},methods:{s(a) {console.log(a )console.log(Object.keys(a) )console.log(a.path )console.log(typeof(a))},}
      }
      </script><style scoped></style>
    • 测试效果:
      在这里插入图片描述
    • 注意事项:
      1. 可以直接将字符串传至改组件;
      2. 只能获取最底层字段的路径
    • 测试结论:不能满足当前需求
  2. vue-json-pretty git仓库地址
    在这里插入图片描述 官方文档说该组件可以监听节点点击事件,先试下

    • 测试代码:

      <template><div class="demo"><vue-json-pretty :data="json" rootPath="$" :selectOnClickNode="true"  :editable="true":highlightSelectedNode="true" v-on:nodeClick="s" /></div>
      </template><script>
      /* eslint-disable */
      import VueJsonPretty from "vue-json-pretty";
      const ss = JSON.parse('{"string":"text","number":123,"boolean":true,"null":null,"array":["A","B","C"],"object":{"prop1":"value1","nestedObject":{"prop2":"value2"}}}');export default {name : "demo",components:{"vue-json-pretty":VueJsonPretty},data(){return {json : ss}},methods:{s(a) {console.log(a )console.log(Object.keys(a) )console.log(a.path )console.log(typeof(a))}}
      }
      </script><style scoped></style>
      
    • 测试效果
      在这里插入图片描述

    • 使用注意事项:

      1. 插件传入的数据需要是json对象
      2. 需要指定根路径为$
      3. 如果需要编辑内容,设置参数editableTrue
    • 测试结论:满足当前需求

    最终的实现的替换效果:
    在这里插入图片描述

http://www.lryc.cn/news/420859.html

相关文章:

  • SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)
  • P3156 【深基15.例1】询问学号
  • 详解Xilinx FPGA高速串行收发器GTX/GTP(5)--详解8B10B编解码
  • python 画多盘的写放大曲线方法
  • 计算机网络TCP/UDP知识点
  • JavaScript 文档元素获取
  • docker pull实现断点续传
  • 无字母数字webshell之命令执行
  • 华为OD笔试
  • HAProxy理论+实验
  • Spring Boot ⽇志
  • 最详细!教你学习haproxy七层代理
  • ElementUI 事件回调函数传参技巧与自定义参数应用
  • 优化Next的webpack配置
  • Q-Dir vs 传统文件管理器:为何开发者更偏爱这款神器?
  • 日常疑问小记录
  • Java Web —— 第四天(HTTP协议,Tomcat)
  • C++ list的基本使用
  • 云中韧性:Spring Cloud服务调用重试机制深度解析
  • 83.SAP ABAP从前台找字段所在表的两种方法整理笔记
  • docker为普通用户设置sudo权限
  • Nginx + PHP 8.0支持视频上传
  • MySQL基础详解(3)
  • 傅里叶变换结合数学形态学进行边缘增强和边缘提取
  • Haproxy的ACL介绍及应用实例
  • final finally finalize 区别?
  • C语言常用的内存函数
  • MP4 H.264 MPEG-4 MPEG-2
  • nvm 切换、安装 Node.js 版本
  • 基于区块链的合同存证应用开发