【发布时间】:2022-11-26 17:12:47
【问题描述】:
编辑:更新 json 配置以包含与“appArr”处于同一级别的附加键、val 对
我想用来自不同 json 数组的子集更新来自一个 json 数组的匹配键。
我有一个像这样的全局 json 配置:
var config_global = {
"sub-heading": "This is the sub-heading",
"content": {
"par1": "asdf",
"par2": "qwerty",
"par3": "12345"
},
"appArr": {
"app1": {
"id": "ID_001",
"name": "Application 1",
"url": "https://app1.html",
"is_visible": true,
"in_list": true
},
"app2": {
"id": "ID_002",
"name": "Application 2",
"url": "https://app2.html",
"is_visible": true,
"in_list": true
},
"app3": {
"id": "ID_003",
"name": "Application 3",
"url": "https://app3.html",
"is_visible": true,
"in_list": true
}
}
}
我想要另一个 json 数组,它将保留所有子键并只更新我的第二个 json 数组中的项目:
var config_local = {
"content": {
"par1": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure aperiam inventore nemo, asperiores dolorem nisi voluptate omnis quam sit doloremque expedita architecto dicta, at consequatur."
},
"appArr": {
"app1": {
"is_visible": false,
"in_list": true
},
"app2": {
"is_visible": false,
"in_list": false
},
"app3": {
"is_visible": true,
"in_list": false
}
}
}
最终配置必须包含完整的 config_global 以及来自 config_local 的更新。
我尝试使用Oject.assign(),但这会替换应用程序配置而不是更新它。
最终配置应如下所示:
var config = {
"sub-heading": "This is the sub-heading",
"content": {
"par1": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure aperiam inventore nemo, asperiores dolorem nisi voluptate omnis quam sit doloremque expedita architecto dicta, at consequatur."
"par2": "qwerty",
"par3": "12345"
},
"appArr": {
"app1": {
"id": "ID_001",
"name": "Application 1",
"url": "https://app1.html",
"is_visible": false,
"in_list": true
},
"app2": {
"id": "ID_002",
"name": "Application 2",
"url": "https://app2.html",
"is_visible": false,
"in_list": false
},
"app3": {
"id": "ID_003",
"name": "Application 3",
"url": "https://app3.html",
"is_visible": true,
"in_list": false
}
}
}
【问题讨论】:
标签: javascript arrays json merge