vue-json-editor json编辑器
一、概述
现有一个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编辑器相关推荐
- vue 使用 Editor.md编辑器
根据该博文:https://blog.csdn.net/u010609807/article/details/82761065 github地址:https://github.com/Mozhate/ ...
- JSON Editor 中文文档
JSON Editor 中文文档 原文出处:https://www.cnblogs.com/handk/p/4766271.html JSON Editor JSON Editor 根据定义的JSON ...
- npm 运行报错“Cannot find module ‘@vue/component-compiler-utils/package.json‘”
npm 运行报错"Cannot find module '@vue/component-compiler-utils/package.json'"如下: 解决方法:安装@vue/c ...
- vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑
vue之猫眼json数据的获取直接用于自己的vue项目中 遇到问题总结: 加载不出猫眼数据,无法调用,数据被限制 猫眼电影图片的拼接及删除问题 swiper的迷幻坑** 首先来说一下第一问题 加载不出 ...
- vue加载服务器json文件,Vue加载json文件的方法简单示例
本文实例讲述了Vue加载json文件的方法.分享给大家供大家参考,具体如下: 一.在build/dev-server.js文件里 var app = express() 这句代码后面添加如下(旧版): ...
- vue 调取本地wps_详解VUE调用本地json的使用方法
开始的时候我以为,用vue去调取json要多么的麻烦,完咯就先去的百度,找了几个,看上面又要配置这配置那的,看的我都头大,像一些思维逻辑清晰的肯定不会出现这种情况. 下面我说下我这的情况,大家依情况代 ...
- vue aixos请求json
this.axios.get('/static/json/jinxiangZhe.json').then(res=>{console.log(res);}).catch( error => ...
- html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件
[目的] 在自己的网页上交由用户进行json的可视化编辑 [难点]1.json中含有递归嵌套的数组和对象 2.json中的基本值类型有数字.字符串和布尔型 [方法]使用daviddurman的Flex ...
- Vue 字符串转JSON
var jsonObject = JSON.parse('JSON格式字符串')
- vue中实现json格式化的显示
把JSON对象 转换为 有缩进的 JSON字符串格式 原 效果图 <template><div class='content'><el-button type=" ...
最新文章
- 基于python的人工智能Jiagu深度学习自然语言处理开源工具
- apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!
- 1803无法升级到2004_今年的Win10更新很特别,不要随便升级!
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- TensorRT学习笔记2 - 基础知识
- Docker~从Dockerfile到Container的过程
- Matlab找到不知道的函数名
- android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...
- jmeter 及测试
- 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
- 笔记︱虚拟变量回归=差异显著(方差分析)+差异量化(系数值)
- BZOJ3669[NOI2014] 魔法森林
- 判断一个数是否为素数
- Context-Aware Patch Generation for Better Automated Program Repair -上下文感知补丁生成更好的自动化程序修复
- 网线线序和插座插头配线规则和光纤接口分类
- .loc 与.iloc
- 手机拍照技巧(一:校园拍摄)
- htmldd隐藏,如何在隐藏“dd”后隐藏“dd”
- C++11新特性之long long类型
- python儿童编程教育_2019儿童编程语言大全