gpt4 book ai didi

Javascript JSON比较/差异?

转载 作者:可可西里 更新时间:2023-11-01 01:17:49 24 4
gpt4 key购买 nike

假设我有以下 2 个 json 对象:

JSON A:
{
"Field A":"1",
"Field B":"2",
"Field D":"Something",
"Field E":"6"
}

JSON B:
{
"Field A":"1",
"Field B":"2",
"Field C":"3",
"Field D":"Different"
}

示例函数: 函数(jsonstringA,jsonstringB)

示例(如果使用 JSON A 和 JSON B 作为参数):

返回一个新的 JSON 对象,包含:

{
"Field C":"3", // because function sees jsonstringB had no "Field C"
"Field D": "Different" // sees jsonstringB had a different value for "Field D"
}

请注意,它使用 jsonstringA 作为比较的基础,因此该函数仅返回缺少的字段和 jsonStringB 的值。这就是不返回“字段 E”及其值的原因。

如果可能想出一个返回包含已更改值的 json 对象的函数,最好的方法是什么?

我尝试过的:我尝试通过手动指定我要检查的字段来进行比较,但我想要一些东西,要求我不要对“字段”进行硬编码,因为它非常低效,每次我向 JSON 添加新字段时B,我必须在我正在寻找的领域进行硬编码......这就是为什么我正在寻找不那么痛苦的东西。

最佳答案

创建这样的函数并不难。只需遍历第二个对象中的每个字段,如果它不存在于第一个对象中或值与第一个不同,则将该字段放入返回对象中。

var compareJSON = function(obj1, obj2) {
var ret = {};
for(var i in obj2) {
if(!obj1.hasOwnProperty(i) || obj2[i] !== obj1[i]) {
ret[i] = obj2[i];
}
}
return ret;
};

您可以在 this demo page 上看到它的实际效果.

关于Javascript JSON比较/差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com