Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON的特定部分合并在一起_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 将JSON的特定部分合并在一起

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

我想将JSON代码的特定部分与另一个JSON合并。要澄清,请参考以下示例:

JSON 1:

{"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);