我有JSON本身
[
{
"id": 0,
"traps": [
{
"size": "big",
"for": "none",
"amount": 8
},
{
"size": "large",
"for": "spa",
"amount": 4
}
]
},
{
"id": 1,
"traps": {
"traps": {
"children": [
{
"trap": {
"children": [
{
"size": {
"content": "regular"
}
},
{
"for": {
"content": "none"
}
},
{
"amount": {
"content": "10"
}
}
]
}
},
{
"trap": {
"children": [
{
"size": {
"content": "regular"
}
},
{
"for": {
"content": "spa"
}
},
{
"for": {
"content": "2"
}
}
]
}
}
]
}
}
}
]
我想把它的traps元素替换为与此列表匹配的元素
[
[
{
"id": 0,
"trap": [
{
"size": "regular",
"for": "Si",
"amount": 4
}
]
}
],
[
{
"id": 1,
"trap": [
{
"size": "ad",
"for": "dad",
"amount": "0"
}
]
}
],
[
{
"id": 1,
"trap": [
{
"size": "ran",
"for": "sultan",
"amount": "2"
}
]
}
],
]
这意味着我想丢弃第一个文档中的陷阱,并放置第二个文档中的陷阱。我需要的解决方案是id = 0的元素放弃其陷阱值,并使用第二个Json中id=0的陷阱值。此外,第一个文档中ID为1的元素需要丢弃其陷阱元素,并替换为第二个文档中ID为1的其他两个陷阱元素。
非常感谢您的光临。
我尝试用second的值更新第一个,但第一个文档中的每个元素都从第二个文档中获取了全部3个陷阱,或者根本没有陷阱
1条答案
按热度按时间4c8rllxm1#
假设JSON的第一个块名为
start
,JSON的第二个块名为update
,那么根据我对问题的阅读,下面的代码将起到作用:reduce调用生成一个对象,其中键是id,值是
trap
数组的新值。然后map调用从起始数据创建一个新数组,用新的字段替换旧的trap字段。希望这能有所帮助。