javascript 将JSON添加到另一个JSON

nkkqxpd9  于 2023-10-14  发布在  Java
关注(0)|答案(1)|浏览(261)

我有两个JSON对象,它们是Youtube API响应。
我想将第二个JSON(源)的某个部分附加到第一个JSON(目的地)的特定位置,最后有一个合并的JSON发送到视图。
我试过这样做:

  1. var merged = Object.keys(source).forEach(function(key) {
  2. destination.items[key].contentDetails = source[key].items[key].contentDetails;
  3. })

它们都包含相同数量的项目集,所以我在source循环中使用相同的索引键作为目的地,并将每个项目都附加到目的地JSON中。
destination.items[key].contentDetails是一个有效的引用,在控制台中返回正确的值,但在此循环中它是未定义的。我做错了什么?我不太确定这种做法这样的任务,所以我会非常感谢一些方向。

lbsnaicq

lbsnaicq1#

您遇到的问题是因为forEach函数返回undefinedforEach方法不会创建新对象;它用于迭代数组,不返回任何值。所以,当你试图将forEach的结果赋值给merged时,它变成了undefined
要合并两个JSON对象,可以使用for循环或其他方法,如map。下面是代码的修改版本,使用for循环合并两个对象:

  1. for (var key in source) {
  2. if (source.hasOwnProperty(key)) {
  3. destination.items[key].contentDetails = source[key].items[key].contentDetails;
  4. }
  5. }

这段代码遍历source对象中的键,检查它们是否存在于destination对象中,然后相应地合并contentDetails。

相关问题