Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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结构添加额外的对象_Javascript_Json_Parsing - Fatal编程技术网

向javascript结构添加额外的对象

向javascript结构添加额外的对象,javascript,json,parsing,Javascript,Json,Parsing,所以我有这个结构,我从中获取数据 data { one: one two: two additional { three: three four: four } } 其他是内部数据。我无法编辑此内容,因为我从后端获取了t 我还抓取了另一个结构,比如 data2 { one: one two: two three: three four: four } 我希望这两个结构是相同的,这样我就可以用相同的代码来

所以我有这个结构,我从中获取数据

data {
   one: one
   two: two
   additional {
      three: three
      four: four
   }
}
其他是内部数据。我无法编辑此内容,因为我从后端获取了t

我还抓取了另一个结构,比如

data2 {
   one: one
   two: two         
   three: three
   four: four
}
我希望这两个结构是相同的,这样我就可以用相同的代码来解析它们。有没有办法在data2中添加一个额外的对象,使其成为

data2 {
   one: one
   two: two
   additional2 {
      three: three
      four: four
   }
}

谢谢

这里有几点需要讨论

您的JSON格式无效。应该是

数据2={1:'1',2:'2',附加:{foo:'bar'}

之后,您可以像这样使用Object.assign

完成了

或者动态地

data2.additional2 = {};
for (var prop in data.additional) {
    eval('data2.additional2.' + prop + ' = data.additional.' + prop + ';');
}

这是假设additional的每个属性都很简单。您可以对属性进行更复杂的递归检查和复制。或者干脆将整个对象克隆分配给它。你自己决定:

data2['additional2']={three:three,three:three};删除数据2[‘三’];删除数据2[‘四’];我不相信给出的数据应该是JSON。它只是数据结构的抽象表示。此外,它们不需要Object.assign。data2.additional={…}可以正常工作。
data2.additional2 = {
    three : 3,
    four : 4
};
data2.additional2 = {};
for (var prop in data.additional) {
    eval('data2.additional2.' + prop + ' = data.additional.' + prop + ';');
}