1、json文件

{"test1" : {"aa" : 0,"bb" : 0,"cc" :  [ 1, 0 , 0, 0, 0, 0],"dd" : 1},"test2" : {"ee" : [ 1, 0 ],"tt" : 288,"gg" : 1,"nn" : 0}
}

2、对比代码

package mainimport ("encoding/json""fmt""io/ioutil"
)func main() {left, _ := readFileOfJson("E:\\jsonDataold.json")right, _ := readFileOfJson("E:\\jsonData.json")jsonDiffDict(left, right,  0)fmt.Println("left right change place")jsonDiffDict(right, left,  1)return
}func jsonDiffDict(json1, json2 map[string]interface{},  sign int) {for k, value := range json1 {if k == "test1" || k == "test2" {json2_value := json2[k].(map[string]interface{})for k1, value1 := range value.(map[string]interface{}) {if _, ok := json2_value[k1]; ok {switch value1.(type) {case float64:if value1 == json2_value[k1] {continue} else {if sign == 0 {fmt.Printf("exist diff %16s %30s %9.0f %9.0f\n", k, k1, value1, json2_value[k1])}}case interface{}:value11 := value1.([]interface{})value22 := json2_value[k1].([]interface{})length := len(value11)if length > 4 {//只对比切片的前4个length = 4}for i := 0; i < length; i++ {if value11[i] == value22[i] {continue} else {if sign == 0 {fmt.Printf("exist diff %16s %30s %2d %9.0f %9.0f\n", k, k1, i, value11[i], value22[i])}}}default:fmt.Println("exist char type not sure ", k, k1)}} else {if sign == 0 {fmt.Println("right not exist", k, k1)} else {fmt.Println("left not exist", k, k1)}}}}}
}
func readFileOfJson(filepath string) (map[string]interface{}, error) {mapInfo := make(map[string]interface{})bytes, err := ioutil.ReadFile(filepath)if err != nil {fmt.Println("ReadFile: err", err.Error())return nil, err}if err := json.Unmarshal(bytes, &mapInfo); err != nil {fmt.Println("Unmarshal: err", err.Error())return nil, err}return mapInfo, nil
}

go语言两个json对比相关推荐

  1. 两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)

    本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)",主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款 ...

  2. php 1 2 3 转arry_在PHP语言中使用JSON和将json还原成数组的方法

    在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_deco ...

  3. python快速比较两个json_Python 比较两个json的方法

    在测试过程中经常会对比两个json的异同,如果当json串较长时,一个一个的对比显然是很浪费时间的. 所以写一个比较json异同的测试方法是很有必要的. 下面介绍一下比较json异同的两种方法,以及测 ...

  4. 易语言json置入_易语言取置JSON文本使用方法-易语言学习-猴子技术宅

    什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON到底是什么? JSON就是一串字符串 只 ...

  5. R语言两个dataframe纵向合并或者为dataframe添加数据行实战

    R语言两个dataframe纵向合并或者为dataframe添加数据行实战 目录 R语言两个dataframe纵向合并或者为dataframe添加数据行实战

  6. java json 去重_js操作两个json数组合并、去重,以及删除某一项元素

    两个json数组合并去重,以及删除某一项元素 let ha = [ {id:'H',name:'3'}, {id:'A',name:'6'}, {id:'B',name:'14'}, {id:'C', ...

  7. matlab的日期当循环量,R语言与matlab循环时间对比

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 想R语言与matlab循环时间对比,到底相差多少,不看不知道,一看吓一跳: 1)R语言 t1=Sys.time() a=NULL for(i in 1:1 ...

  8. C语言两种导入头文件的区别

    C语言两种导入头文件的区别 #include<stdio.h> 和 #include"stdio.h" 这两种导入头文件的区别: 区别在于编译器查找头文件的顺序, &q ...

  9. C语言两个字符串查找最长的公共子串的算法(附完整源码)

    C语言两个字符串查找最长的公共子串的算法 C语言两个字符串查找最长的公共子串的算法完整源码(定义,实现,main函数测试) C语言两个字符串查找最长的公共子串的算法完整源码(定义,实现,main函数测 ...

  10. php mysql 连接方法 对比_Mysql实例php连接MySQL的两种方式对比

    <Mysql实例php连接MySQL的两种方式对比>要点: 本文介绍了Mysql实例php连接MySQL的两种方式对比,希望对您有用.如果有疑问,可以联系我们. MYSQL数据库记录一下P ...

最新文章

  1. register_chrdev深入分析
  2. 【ubuntu-qt-dlib】 配置问题 (一) undefined reference to `XPending'
  3. java接口测试框架搭建_接口自动化测试框架搭建
  4. 我的docker随笔33:在容器中连接oracle数据库
  5. 团队开发之个人博客五
  6. TensorFlow模型保存和提取方法
  7. vb计算机安装教程,windows10系统安装vb6.0图文教程 Win10攻略
  8. (超详细)Eclipse使用教程——使用Eclipse创建第一个HelloWorld!
  9. 基于人机环境系统工程的智慧企业建设思考(2)
  10. 无人机航拍高空全景图的四个步骤
  11. 远程访问VM虚拟机方式记录
  12. 当RPM包安装遇上“依赖性”问题时的解决办法
  13. matlab中geoshow函数的使用/属性设置
  14. pro、pre、test、dev环境
  15. Alios things资料篇
  16. 2019年7月3号第九次练习(27移除元素)
  17. Mysql数据库基础知识总结,结构分明,内容详细
  18. JAVA语言 - Android拷贝assets文件(资源文件)
  19. matlab产生均匀白噪声,各种分布白噪声的产生matlab.pdf
  20. 企业级购物车实现思路

热门文章

  1. html复制粘贴后乱码,从Word复制的内容粘贴出来都是两个乱码
  2. 安装kafka+golang操作kafka
  3. 基于大数据平台的数据仓库
  4. 物联网通信技术期末复习6:第六章-应用传输技术
  5. 史上最简单的spark教程第十章-SparkSQL编程Java案例实践(二)
  6. tomcat配置gc日志输出
  7. Linux 日志查看命令journalctl
  8. 2021-05-09 matlab归一化和反归一化函数——mapminmax
  9. (附源码)ssm汽车租赁——持续输出BU 毕业设计 271621
  10. Android Studio汉化版教程