json格式数据比对

article/2025/9/28 8:14:28

效果图
在这里插入图片描述
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

http://chatgpt.dhexx.cn/article/GRgjwoVw.shtml

相关文章

json格式数据介绍

1.json是什么&#xff1f; : 是一种数据交换格式&#xff0c;它本质上是用字符串的方式来表示对象或数组类型的数据 实际开发中&#xff0c;网页中的数据都是来源于网络服务器。 而服务器不是js语言开发&#xff0c;而是其他编程语言 &#xff1a; java、c、python、go、c…

Mysql中json格式数据查询、修改

测试数据&#xff1a; DROP TABLE IF EXISTS student; CREATE TABLE student (id varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,name varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,json_data varchar(255) CH…

Android之JSON格式数据解析

JSON&#xff1a;JavaScript 对象表示法&#xff08;JavaScript Object Notation&#xff09;。独立于语言和平台&#xff0c;比 XML 更小、更快&#xff0c;更易解析。如今JSON数据已经成为了互联网中大多数数据的传递方式&#xff0c;所以必须要熟练掌握。 Android平台自带了…

Python提取JSON格式数据

文章目录 前言&#xff1a;一、JSON使用1.导入json的包2.常用的方法 二、实战1.json.loads()2.jsonpath 前言&#xff1a; 我们经常会用到json数据&#xff0c;json数据格式主要是用来和不同语言之间进行交互比如你要给java端的提供数据&#xff0c;你需要将自己的数据转换为j…

解析JSON格式数据常见方法

待解析的JSON格式的文件如下&#xff1a; [{"id":"5", "version":"1.0", "name":"xiaowang"}, {"id":"10", "version":"2.0", "name":"lisi"}] 一、…

JSON.parseObject 解析JSON格式数据

fastjson是阿里巴巴开源产品之一&#xff0c;解析速度快。 下载地址(maven仓库)&#xff1a;https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.53 // 当待解析的JSON字符串是简单对象类型的&#xff0c;即用大括号包围&#xff0c;此时采用JSONObject对象来处理…

JQuery 发送Json格式数据

简述&#xff1a; 需要封装一组Json格式的数据到服务器 知识点&#xff1a; 1. 调用jquery.json的库 2. AJAX Post 请求 Jquery下载地址 http://jquery.com/download/ Jquery.json http://code.google.com/p/jquery-json/ 代码&#xff1a; testSendJson.jsp <% page…

Json格式字符串转换成Json格式数据

1、json格式字符串 2、将json格式字符串转换成json格式 //json格式的字符串 String str "{ \"people\": [\n" "\n" "{ \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\&…

数据库中存储Json格式数据

在数据库中存储Json格式数据 1、表字段类型 json 2、Java代码有两种方式&#xff1a; 方式一 &#xff1a;属性定义成String类型。 往数据库中存储的值 必须为JSON格式的字符串&#xff0c;因为数据库中会做一次校验。 缺点&#xff1a;往数据库中存的数据是String类型&…

Mysql存储json格式数据

Mysql5.7版本以后新增的功能&#xff0c;Mysql提供了一个原生的Json类型&#xff0c;Json值将不再以字符串的形式存储&#xff0c;而是采用一种允许快速读取文本元素&#xff08;document elements&#xff09;的内部二进制&#xff08;internal binary&#xff09;格式。在Jso…

多路复用技术之时分复用

多路复用技术是通信技术领域的一个专业名词&#xff0c;从字面上的意思去理解就是将多路信号按照一定的规则共用同一条信道进行传输。 一、多路复用技术的分类 多路复用技术通常分为频分多路复用、时分多路复用、波分多路复用、码分多址和空分多址。 二、时分多路复用原理 …

“分集”与“复用”辨析

【注&#xff1a;本文中几乎所有文字与图片均来自网络&#xff0c;本人仅做了整理与归纳&#xff01;】 文章目录 分集与复用1. 分集与复用的概念1.1 分集1.2 复用 2. 分集与复用的目的2.1 分集的目的2.2 分集阶数与分集增益2.3 复用的目的 3. 分集与复用的分类3.1 分集技术3.…

认识LTE(七):LTE中的两种无反馈模式:发射分集(TM2)和开环空分复用(TM3)

认识LTE(七)&#xff1a;LTE中的两种无反馈模式&#xff1a;发射分集&#xff08;TM2&#xff09;和开环空分复用&#xff08;TM3&#xff09; 文章目录 认识LTE(七)&#xff1a;LTE中的两种无反馈模式&#xff1a;发射分集&#xff08;TM2&#xff09;和开环空分复用&#xff…

认识LTE(八):LTE中的反馈:闭环空分复用(TM4)

认识LTE(八)&#xff1a;LTE中的反馈&#xff1a;闭环空分复用&#xff08;TM4&#xff09; 文章目录 认识LTE(八)&#xff1a;LTE中的反馈&#xff1a;闭环空分复用&#xff08;TM4&#xff09;零.代码地址一.TM4到底反馈了什么&#xff1f;二.CQI反馈二.PMI 三.RI四.总结 零.…

图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址

目录 前言&#xff1a; 第1章 MIMO多天线技术概述 1.1 三大目的 1.2 六大分类 第2章 单天线SISO&#xff08;单输入单输出&#xff09; 2.1 概述 2.2 实现原理--多路“异频”《发送接收》对 第3章 接收分集MISO&#xff08;多输入单输出&#xff09;&#xff1a;冗余接…

[4G5G专题-28]:架构-什么是多天线技术与5G大规模天线阵列、波束赋形、高阶空分复用?

目录 第1章 多天线技术概述 1.1 LTE的多天线技术回顾 1.2 5G大规模天线阵列、波束赋形以及其动机 第2章 什么是波束赋形 2.1 波束赋形与大规模天线阵列的关系 2.2 波束赋形的定义 2.3 波束赋形要回答和解决的两个问题 2.4 常见的波束赋形相关的专业术语 第3章 Active …

复用,多址的区分以及其涉及的相关数据速率

复用技术 为了让尽可能多的手机使用同一个频段&#xff0c;无线通信设计了多址复用技术&#xff1a; 时分多路复用&#xff08;Time Division Multiplexing&#xff0c;TDM)要求各个子通道按时间片轮流地占用整个带宽。时间片的大小可以按一次传送一位、一个字节或一个固定大…

王道 —— 操作系统的四个特征

1、知识总览 操作系统有并发、共享、虚拟、异步四个基本特征&#xff0c;并发和共享是两个最基本的特征&#xff0c;二者互为存在条件&#xff1b; 2、操作系统的特征 —— 并发 并发&#xff1a;指两个或者多个时间在同一时间间隔内发生。这些事件宏观上是同时发生的&#x…

操作系统学习笔记——总体总结

看书太慢容易抓不住重点&#xff0c;所以在此按照操作系统的主要内容分别查网上博客资料进行学习。 一、引论 操作系统基本特性&#xff1a; 并发&#xff1a; 1.并行与并发&#xff1a;并行性是指两个或多个时间在同一时刻发送&#xff1b;并发性是指两个或多是事件在同一…

数据库脏读、不可重复读、幻读

1. 脏读 &#xff1a;脏读就是指当一个事务正在访问数据&#xff0c;并且对数据进行了修改&#xff0c;而这种修改还没有提交到数据库中&#xff0c;这时&#xff0c;另外一个事务也访问这个数据&#xff0c;然后使用了这个数据。 2. 不可重复读 &#xff1a;是指在一个事务内&…