json格式数据比对
效果图
vue部分
<template><div><el-row><div><el-col :span="6"><p>json比对A</p><vue-json-editorv-model="jsonA" :show-btns="false" :mode="'code'" lang="zh" @json-change="onJsonChange" @json-save="onJsonSave" @has-error="onError"></vue-json-editor>
</el-col>
</div>
<div>
<el-col :span="6">
<p>json比对B</p><vue-json-editorv-model="jsonB" :show-btns="false" :mode="'code'" lang="zh" @json-change="onJsonChange" @json-save="onJsonSave" @has-error="onError"></vue-json-editor></el-col></div><div> <el-col :span="6"><el-button @click="startCompare" type="primary"> 开始比对</el-button></el-col></div><div> <el-col><template><el-table:data="tableData" border height="680px" :row-class-name="tableRowClassName" style="width: 100%"><el-table-columnprop="key"label="KEY"width="180"></el-table-column><el-table-columnprop="value"label="VALUE"width="180"></el-table-column><el-table-columnprop="A_Exsits"label="A是否存在"></el-table-column><el-table-columnprop="A_value"label="A对应VALUE值"></el-table-column><el-table-columnprop="B_Exsits"label="B是否存在"></el-table-column><el-table-columnprop="B_value"label="B对应VALUE值"></el-table-column></el-table>
</template></el-col></div></el-row></div>
</template>
<script>import vueJsonEditor from 'vue-json-editor'import axios from 'axios'import { platformBaseUrl } from '@/api/baseHost'export default {data () {return {jsonA: {'demo':{'msg': 'demo of jsoneditor'},'demo1':{'msg1': 'demo of jsoneditor'}},jsonB: {'demo':{'msg': 'demo of jsoneditor'},'demo1':{'msg1': 'demo of jsoneditor'}},tableData: [{'key': 'demo','value': 'msg','A_Exsits': 'Y','A_value':'demo of jsoneditor','B_Exsits':'Y','B_value':'demo of jsoneditor'},{'key': 'demo1','value': 'msg1','A_Exsits': 'Y','A_value':'demo of jsoneditor1','B_Exsits':'Y','B_value':'demo of jsoneditor'}],}},components: {vueJsonEditor},methods: {tableRowClassName(tableData) {// debuggerconsole.log('11211'+JSON.stringify(tableData))console.log(JSON.parse(JSON.stringify(tableData)).row.A_value)if (JSON.parse(JSON.stringify(tableData)).row.A_value == JSON.parse(JSON.stringify(tableData)).row.B_value){return '';}return 'success-row';},onJsonChange (value) {console.log('value:', value);},showModal(msg) {console.log('showModal resTrans msg.data after', msg)},onJsonSave (value) {console.log('value:', value);},onError (value) {console.log('value:', value);},startCompare(){axios.post(platformBaseUrl + "/api/jsonCompare/", {jsonA:this.jsonA,jsonB:this.jsonB}).then(response => {this.tableData = response.data.result;this.tableRowClassName(JSON.parse( response.data.result ))return this.tableData}).catch(err => {this.showModal("失败,请检查参数!");});}}, }
</script>
<style>.el-table .warning-row {background: oldlace;}.el-table .success-row {background: #1E90FF;}
</style>
加粗样式好几个反馈需要后台的比对函数的,其实很简单。就是以其中一个为基准,另一个遍历,如:
def jsondiff(jsona,jsonb):# 判断格式# if is_json(jsona) and is_json(jsonb):result = []# 是否为空if jsona == {}:return []else:# 遍历jsonA 和jsonB比较# base_info = json.loads(jsona)base_info = jsonafor key in base_info.keys():if isinstance(base_info[key], dict):for value in base_info[key].keys():if key in jsonb:if value in jsonb[key]:dic = {}dic["key"] = keydic["value"] = valuedic["A_Exsits"] = 'Y'dic["A_value"] = base_info[key][value]dic["B_Exsits"] = 'Y'dic["B_value"] = jsonb[key][value]if dic["A_value"]!=dic["B_value"]:result.append(dic)else:dic = {}dic["key"] = keydic["value"] = valuedic["A_Exsits"] = 'Y'dic["A_value"] = base_info[key][value]dic["B_Exsits"] = 'N'dic["B_value"] = ''result.append(dic)else:dic = {}dic["key"] = keydic["value"] = valuedic["A_Exsits"] = 'Y'dic["A_value"] = base_info[key][value]dic["B_Exsits"] = 'N'dic["B_value"] = ''result.append(dic)return result
json格式数据比对相关推荐
- python response.json()报错_Django JsonResponse json格式报错 解决Django响应JsonResponse返回json格式数据报错问题...
想了解解决Django响应JsonResponse返回json格式数据报错问题的相关内容吗,彭世瑜在本文为您仔细讲解Django JsonResponse json格式报错的相关知识和一些Code实例 ...
- netcore读取json文件_.net core读取json格式的配置文件
在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用j ...
- php读取本地xlsx格式文件的数据并按json格式返回
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 目的:php读取并操作本地xlsx格式的文件: 完整示例代码: 代码讲解:前端发起post网络请求,php接收 ...
- PHP 3 HTML POST带参数请求 后端返回json格式的数据给前端
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 前端代码 <!DOCTYPE html> <html lang="zh" ...
- 如何在Django中接收JSON格式的数据
Django做了大量工作简化我们的Web开发工作, 这其中当然也包括接收来自客户端的数据这一普遍需求. 大部分时候,从客户端传入的数据主要是FORM的POST数据,和来自URL的GET数据, 在Dja ...
- Asp.net无刷新调用后台实体类数据并以Json格式返回
新建一般处理程序 public class Temp {public int Index { get; set; }public string Description { get; set; }pub ...
- 【Postman】6 Postman 发送post请求-Json格式
一.post请求说明 使用postman发送一个post请求,在上文中测试流程中提到的4个要素:URL.请求方式.请求头部信息及body数据. body中设置的请求参数,常见的有如下三种: 1.x-w ...
- Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 无侵入式 统一返回JSON格式 其实本没有没打算写这篇博客 ...
- 在python中使用json格式存储数据
在python中使用json格式存储数据 代码如下: import jsonlist1 = [{'A': [1, 2, 3, 4, 5, 6], 'B': [3, 4, 5, 6, 7]},{'C': ...
最新文章
- EfficientNetv2测试
- DAY3-Flask项目
- 2017年什么命_所谓“佛系”,真的不是什么都不做!
- C#为null或Empty
- Linex第三章第四章
- 莫烦python学习笔记之class
- html实验原理及目的,网页设计实验报告_图文
- pbs分解_谈WBS与PBS
- 传智播客html作业小苹果,传智播客_网页设计与制作(HTML+CSS) 案例源代码.rar
- 计算机电子表格计算怎么做,excel表格如何做总计|excel表格总计教程
- ISP—图像调试实习生(第14天)
- sqlserver实现只查询一条数据
- Java 埃拉托色尼筛选法
- 【产品实战-乘风游旅游App】3.0 乘风游的产品设计之用户角色
- sql查询将一对多转化为一对一
- 群晖经典第三方套件_使用群晖第三方套件进行IPV6的DDNS
- 量子计算机工作原理如何解释,量子计算机工作原理
- WPF 3D开发教程(四)
- 2007年开关稳压电源设计报告!!!
- 熬之滴水穿石:一切从windows编程开始(3)
热门文章
- IGBT/ MOSFET并联吸收电容:二阶电路零输入响应
- arduino pwm电机调速程序
- android10获取相册失败的解决方式
- 使用Promise.all实现限制并发请求函数
- R语言 同Excel的sumif功能,对相同一个变量里面相同的元素进行合并,相同的行进行相加
- 万般皆下品,惟有读书高
- 【Java书笔记】:《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第2部分-自动内存管理,第3部分-虚拟机执行子系统,第5部分-高效并发
- 27 种确定性预测评估指标(Python实现)
- VMware ESXi 6.5 安装NVIDIA K2 GPU 显卡硬件驱动和配置图文
- ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构