Javascript 将JSON的特定部分合并在一起
我想将JSON代码的特定部分与另一个JSON合并。要澄清,请参考以下示例: JSON 1:Javascript 将JSON的特定部分合并在一起,javascript,angularjs,json,Javascript,Angularjs,Json,我想将JSON代码的特定部分与另一个JSON合并。要澄清,请参考以下示例: JSON 1: {"metadata": { "userName": "Batman", "userId" : "402", "config":{ "a" : "some text here", "b" : "some other text here" } }} JSON 2: {"metadata": { "userName": "Superma
{"metadata": {
"userName": "Batman",
"userId" : "402",
"config":{
"a" : "some text here",
"b" : "some other text here"
}
}}
JSON 2:
{"metadata": {
"userName": "Superman",
"userId" : "102",
"config":{
"a" : "Overwrite Text 1",
"b" : "Overwrite Text 2"
}
}}
现在,我只想用JSON 2覆盖JSON 1的config
部分,这样JSON 1将变成:
{"metadata": {
"userName": "Batman",
"userId" : "402",
"config":{
"a" : "Overwrite Text 1",
"b" : "Overwrite Text 2"
}
}}
我已经尝试过使用循环,但我想知道是否有更有效的方法来编写代码。我使用的是棱角分明的纯JS。非常简单:
json1.metadata.config = json2.metadata.config;
您可以使用另一个json对象的配置覆盖其config
数据
如果您想让我详细说明,请告诉我。非常简单:
json1.metadata.config = json2.metadata.config;
您可以使用另一个json对象的配置覆盖其config
数据
如果您想让我详细说明,请告诉我。您可以尝试Object.assign-
您可以尝试Object.assign- 应该足够了 您必须记住,修改json2.metadata.config将修改json1.metadata.config,这是一个浅拷贝 应该足够了 您必须记住,修改json2.metadata.config将修改json1.metadata.config,这是一个浅拷贝。如Djave所说使用是正确的,但如果您不使用ES6和transpiler,您可以利用Angular本身并执行简单的操作: 通过这种方式,您将获得新的JSON部件的复制和引用。使用Djave所说的方法是正确的,但是如果您不使用ES6和transpiler,您可以利用Angular本身并执行简单的操作:
通过这种方式,您将获得新的JSON部件的复制和引用。当您编辑finalJSON时,您也在编辑json1。我的错。我试图让事情变得非常明显,但这样做可能会使事情变得过于复杂。这一切仍然像问题所期望的那样有效。当你编辑finalJSON时,你也在编辑json1。我的错。我试图让事情变得非常明显,但这样做可能会使事情变得过于复杂。这一切仍然如问题所预期的那样起作用。
json1.metadata.config = json2.metadata.config;
var obj1 = JSON.parse(json1);
var obj2 = JSON.parse(json2);
obj1.metadata.config = angular.copy(obj2.metadata.config);