一、概述

现有一个vue项目,需要一个json编辑器,能够格式化json数据,同时也支持编辑功能。

vue-json-editor 插件就可以实现这个功能

二、vue-json-editor 使用

安装插件

npm install vue-json-editor --save

使用

test.vue

<template><div style="width: 70%;margin-left: 30px;margin-top: 30px;"><vue-json-editorv-model="resultInfo":showBtns="false":mode="'code'"@json-change="onJsonChange"@json-save="onJsonSave"@has-error="onError"/><br><el-button type="primary" @click="checkJson">确定</el-button></div>
</template><script>// 导入模块import vueJsonEditor from 'vue-json-editor'export default {// 注册组件components: { vueJsonEditor },data() {return {hasJsonFlag:true,  // json是否验证通过// json数据resultInfo: {'employees': [{'firstName': 'Bill','lastName': 'Gates'},{'firstName': 'George','lastName': 'Bush'},{'firstName': 'Thomas','lastName': 'Carter'}]}}},mounted: function() {},methods: {onJsonChange (value) {// console.log('更改value:', value);// 实时保存this.onJsonSave(value)},onJsonSave (value) {// console.log('保存value:', value);this.resultInfo = valuethis.hasJsonFlag = true},onError(value) {// console.log("json错误了value:", value);this.hasJsonFlag = false},// 检查jsoncheckJson(){if (this.hasJsonFlag == false){// console.log("json验证失败")// this.$message.error("json验证失败")alert("json验证失败")return false} else {// console.log("json验证成功")// this.$message.success("json验证成功")alert("json验证成功")return true}},}}
</script><style>
</style>

插件参数说明:

<vue-json-editorv-model="resultInfo"  // 绑定数据resultInfo:showBtns="false"  // 是否显示保存按钮:mode="'code'"  // 默认编辑模式// 显示中文,默认英文@json-change="onJsonChange"  // 数据改变事件@json-save="onJsonSave"  // 数据保存事件@has-error="onError"  // 数据错误事件/>

相关说明:

resultInfo  默认绑定的变量,这个变量可以为空,编辑器会显示为{}

:showBtns 这里不显示保存按钮,为什么呢?原因有2个。1. 默认样式不好看。2. 只能当json数据正确,才能点击保存按钮,否则禁止点击。

json-change,json-save,has-error 这3个事件,是会实时触发的。

这里我额外加了一个检测方法,用来判断json数据是否正确。默认标记为true,当不正确时,会改变状态为false。

访问

点击确定,提示成功

改为错误的,点击确定,会提示失败。

注意:这个json编辑会带有下来菜单,实际项目中,需要去除,比较用户误操作。

在实际使用中发现几个问题:

1. 输入中文时,传给后端的值不多

2. 输入大量json时,会有部分数据丢失。

因此,我们使用下面的编辑器bin-code-editor

三、bin-code-editor

安装模块

npm install bin-code-editor -d

引入

在 main.js 中写入2行

import CodeEditor from 'bin-code-editor';
Vue.use(CodeEditor);

test.vue

<template><div style="width: 70%;margin-left: 30px;margin-top: 30px;"><b-code-editor v-model="jsonStr" :auto-format="true" :smart-indent="true" theme="dracula" :indent-unit="4" :line-wrap="false" ref="editor"></b-code-editor><br><el-button type="primary" @click="onSubumit">提交</el-button></div>
</template><script>const jsonData =`{"employees": [{"firstName": "Bill","lastName": "Gates"}, {"firstName": "George","lastName": "Bush"}, {"firstName": "Thomas","lastName": "Carter"}]}`export default {data() {return {jsonStr:jsonData}},methods: {// 检测json格式isJSON(str) {if (typeof str == 'string') {try {var obj=JSON.parse(str);if(typeof obj == 'object' && obj ){return true;}else{return false;}} catch(e) {return false;}}else if (typeof str == 'object'  && str) {return true;}},onSubumit(){if (!this.isJSON(this.jsonStr)){this.$message.error(`json格式错误`)return false}this.$message.success('json格式正确')}}}
</script><style></style>

访问测试页面,效果如下:

输入错误的值,点击执行,会有提示

vue-json-editor json编辑器相关推荐

  1. vue 使用 Editor.md编辑器

    根据该博文:https://blog.csdn.net/u010609807/article/details/82761065 github地址:https://github.com/Mozhate/ ...

  2. JSON Editor 中文文档

    JSON Editor 中文文档 原文出处:https://www.cnblogs.com/handk/p/4766271.html JSON Editor JSON Editor 根据定义的JSON ...

  3. npm 运行报错“Cannot find module ‘@vue/component-compiler-utils/package.json‘”

    npm 运行报错"Cannot find module '@vue/component-compiler-utils/package.json'"如下: 解决方法:安装@vue/c ...

  4. vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑

    vue之猫眼json数据的获取直接用于自己的vue项目中 遇到问题总结: 加载不出猫眼数据,无法调用,数据被限制 猫眼电影图片的拼接及删除问题 swiper的迷幻坑** 首先来说一下第一问题 加载不出 ...

  5. vue加载服务器json文件,Vue加载json文件的方法简单示例

    本文实例讲述了Vue加载json文件的方法.分享给大家供大家参考,具体如下: 一.在build/dev-server.js文件里 var app = express() 这句代码后面添加如下(旧版): ...

  6. vue 调取本地wps_详解VUE调用本地json的使用方法

    开始的时候我以为,用vue去调取json要多么的麻烦,完咯就先去的百度,找了几个,看上面又要配置这配置那的,看的我都头大,像一些思维逻辑清晰的肯定不会出现这种情况. 下面我说下我这的情况,大家依情况代 ...

  7. vue aixos请求json

    this.axios.get('/static/json/jinxiangZhe.json').then(res=>{console.log(res);}).catch( error => ...

  8. html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件

    [目的] 在自己的网页上交由用户进行json的可视化编辑 [难点]1.json中含有递归嵌套的数组和对象 2.json中的基本值类型有数字.字符串和布尔型 [方法]使用daviddurman的Flex ...

  9. Vue 字符串转JSON

    var jsonObject = JSON.parse('JSON格式字符串')

  10. vue中实现json格式化的显示

    把JSON对象 转换为 有缩进的 JSON字符串格式 原 效果图 <template><div class='content'><el-button type=" ...

最新文章

  1. 基于python的人工智能Jiagu深度学习自然语言处理开源工具
  2. apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!
  3. 1803无法升级到2004_今年的Win10更新很特别,不要随便升级!
  4. 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
  5. TensorRT学习笔记2 - 基础知识
  6. Docker~从Dockerfile到Container的过程
  7. Matlab找到不知道的函数名
  8. android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...
  9. jmeter 及测试
  10. 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
  11. 笔记︱虚拟变量回归=差异显著(方差分析)+差异量化(系数值)
  12. BZOJ3669[NOI2014] 魔法森林
  13. 判断一个数是否为素数
  14. Context-Aware Patch Generation for Better Automated Program Repair -上下文感知补丁生成更好的自动化程序修复
  15. 网线线序和插座插头配线规则和光纤接口分类
  16. .loc 与.iloc
  17. 手机拍照技巧(一:校园拍摄)
  18. htmldd隐藏,如何在隐藏“dd”后隐藏“dd”
  19. C++11新特性之long long类型
  20. python儿童编程教育_2019儿童编程语言大全

热门文章

  1. HDU 4960 Another OCD Patient 简单DP
  2. SLURM Array Job
  3. python openpyxl怎么将数组写入excel_Python-使用openpyxl模块写入Excel文件
  4. 阿里云对象存储(oos)
  5. actions的使用详解
  6. SPOOLING系统
  7. 鸿蒙系统是虚头,PS里如何分辨抠图用何种方法?
  8. 传音控股上海特性和功耗开发团队招期招聘优秀工程师啦
  9. AD软件绘制stm32最小系统电路原理图与PCB图
  10. [1] Word样式/主题/模板