效果图

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格式数据比对相关推荐

  1. python response.json()报错_Django JsonResponse json格式报错 解决Django响应JsonResponse返回json格式数据报错问题...

    想了解解决Django响应JsonResponse返回json格式数据报错问题的相关内容吗,彭世瑜在本文为您仔细讲解Django JsonResponse json格式报错的相关知识和一些Code实例 ...

  2. netcore读取json文件_.net core读取json格式的配置文件

    在.Net Framework中,配置文件一般采用的是XML格式的,.NET Framework提供了专门的ConfigurationManager来读取配置文件的内容,.net core中推荐使用j ...

  3. php读取本地xlsx格式文件的数据并按json格式返回

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 目的:php读取并操作本地xlsx格式的文件: 完整示例代码: 代码讲解:前端发起post网络请求,php接收 ...

  4. PHP 3 HTML POST带参数请求 后端返回json格式的数据给前端

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 前端代码 <!DOCTYPE html> <html lang="zh" ...

  5. 如何在Django中接收JSON格式的数据

    Django做了大量工作简化我们的Web开发工作, 这其中当然也包括接收来自客户端的数据这一普遍需求. 大部分时候,从客户端传入的数据主要是FORM的POST数据,和来自URL的GET数据, 在Dja ...

  6. Asp.net无刷新调用后台实体类数据并以Json格式返回

    新建一般处理程序 public class Temp {public int Index { get; set; }public string Description { get; set; }pub ...

  7. 【Postman】6 Postman 发送post请求-Json格式

    一.post请求说明 使用postman发送一个post请求,在上文中测试流程中提到的4个要素:URL.请求方式.请求头部信息及body数据. body中设置的请求参数,常见的有如下三种: 1.x-w ...

  8. Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 无侵入式 统一返回JSON格式 其实本没有没打算写这篇博客 ...

  9. 在python中使用json格式存储数据

    在python中使用json格式存储数据 代码如下: import jsonlist1 = [{'A': [1, 2, 3, 4, 5, 6], 'B': [3, 4, 5, 6, 7]},{'C': ...

最新文章

  1. EfficientNetv2测试
  2. DAY3-Flask项目
  3. 2017年什么命_所谓“佛系”,真的不是什么都不做!
  4. C#为null或Empty
  5. Linex第三章第四章
  6. 莫烦python学习笔记之class
  7. html实验原理及目的,网页设计实验报告_图文
  8. pbs分解_谈WBS与PBS
  9. 传智播客html作业小苹果,传智播客_网页设计与制作(HTML+CSS) 案例源代码.rar
  10. 计算机电子表格计算怎么做,excel表格如何做总计|excel表格总计教程
  11. ISP—图像调试实习生(第14天)
  12. sqlserver实现只查询一条数据
  13. Java 埃拉托色尼筛选法
  14. 【产品实战-乘风游旅游App】3.0 乘风游的产品设计之用户角色
  15. sql查询将一对多转化为一对一
  16. 群晖经典第三方套件_使用群晖第三方套件进行IPV6的DDNS
  17. 量子计算机工作原理如何解释,量子计算机工作原理
  18. WPF 3D开发教程(四)
  19. 2007年开关稳压电源设计报告!!!
  20. 熬之滴水穿石:一切从windows编程开始(3)

热门文章

  1. IGBT/ MOSFET并联吸收电容:二阶电路零输入响应
  2. arduino pwm电机调速程序
  3. android10获取相册失败的解决方式
  4. 使用Promise.all实现限制并发请求函数
  5. R语言 同Excel的sumif功能,对相同一个变量里面相同的元素进行合并,相同的行进行相加
  6. 万般皆下品,惟有读书高
  7. 【Java书笔记】:《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第2部分-自动内存管理,第3部分-虚拟机执行子系统,第5部分-高效并发
  8. 27 种确定性预测评估指标(Python实现)
  9. VMware ESXi 6.5 安装NVIDIA K2 GPU 显卡硬件驱动和配置图文
  10. ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构