将json合并到另一个json对象下



有这样一个json:

json1 = `
{
"webAPIModification": "`+ new Date() + `",
"AppSetting": {
"setting-toastSound": true,
"setting-animMode": true,
"setting-landscape": "NAN"
},
"UserInfo": {
"OS": "NAN"
}
}`;

现在我有了另一个json:

json2 = `
{
"ver": 1,
"send": true,
"status": "NAN"
}`;

如何添加json2到json1(在UserInfo下)?

json1 = `
{
"webAPIModification": "`+ new Date() + `",
"AppSetting": {
"setting-toastSound": true,
"setting-animMode": true,
"setting-landscape": "NAN"
},
"UserInfo": {
"OS": "NAN",
"ver": 1, <--> what i need
"send": true, <--> what i need
"status": "NAN" <--> what i need
}
}`;

我怎么能做到在jquery或javascript的方式??

您可以利用传播算子和添加内容json2 json1。

const json3 ={
...json1,
UserInfo:{
...json1.UserInfo,
...json2
}
}

将其解析为标准JS对象,合并UserInfo对象,最后将其字符串化回JSON:

a = JSON.parse(json1);
b = JSON.parse(json2);
Object.assign(a.UserInfo, b);
json1 = JSON.stringify(a)

一个低级别的解决方案可以是:使用JSON.parse(jsonstring),以便有对象,并将它们视为具有属性或数组的对象,然后你可以设置你想要的…之后,您可以使用json .stringify(object)获得json字符串。

let obj = JSON.parse(json1);
let otherUserInfo = JSON.parse(json2);
for (var index in otherUserInfo){
obj.UserInfo[index] = otherUserInfo[index];
}
json1 = JSON.stringify(obj);

最新更新