首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过编程返回两个json文件差异的最佳方法

通过编程返回两个json文件差异的最佳方法
EN

Stack Overflow用户
提问于 2013-03-23 19:05:44
回答 3查看 14.7K关注 0票数 9

我有两个json文件,我想要一个包含这些差异的json文件。重要的是,只需显示content的实际差异,而不需要更改某些元素的顺序。

这样做最好的方法是什么?我正在寻找一个尽可能高效的解决方案,因为json可能包含大量数据,而且用户需要尽可能快地完成任务。

注意:jsons可能包含不同深度编码的数据。任何编程语言都可以,但我更喜欢在php中很容易实现的答案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-23 19:26:22

基本上,您想要的是类似于array_diff_assoc的东西,但是应用于json对象和递归。

由于引用问题,array_diff函数不是递归的:可以将数组的引用分配给该数组的条目,从而使数组无限递归。我认为不可能在json对象中获得相同的情况,从而使递归函数变得安全。

假设您希望计算对象A和B之间的差异,并在对象C中得到结果。原理是循环遍历A的每个字段( foreach应该这样做),并且在以下情况下:

  • 在B中不存在这样的字段,复制到C上。
  • B中存在类似的字段,在C中给出A字段与B字段差的结果,这是对以这些字段为参数的diff函数的递归调用,也是对结果的一个新的对象。

A的顺序应该得到尊重。

票数 6
EN

Stack Overflow用户

发布于 2013-03-23 19:08:38

尝试使用比较函数

代码语言:javascript
复制
array_diff(json_decode($jsonData1), json_decode($jsonData2));
票数 9
EN

Stack Overflow用户

发布于 2018-02-06 03:00:07

对于此任务,您可以尝试使用https://github.com/swaggest/json-diff

它将进行按键顺序的递归比较(键的顺序并不重要)并生成JSON贴片 (在IETF的RFC 6902中指定)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15590891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档