【问题标题】:concat JSON objects in a loop (No JQuery)在循环中连接 JSON 对象(无 JQuery)
【发布时间】:2016-04-23 19:00:25
【问题描述】:

更新:修正了示例代码中的错误。原来我的问题是由var jsonVar = jsonVar.concat(results.records);中的额外“记录”引起的

如何在循环中连接 JSON 对象?我可以像这样连接 2 个 JSON 对象:

var json1 = {
 "records": [{
 "id": 28100988,
 "work_text_reviews_count": 13,
 "average_rating": "3.10"
 }, {
 "id": 10280687,
 "work_text_reviews_count": 80,
 "average_rating": "3.87"
 }]
}

var json2 = {
 "records": [{
 "id": 16135639,
 "work_text_reviews_count": 0,
 "average_rating": "0.00"
 }, {
 "id": 17978337,
 "work_text_reviews_count": 2414,
 "average_rating": "3.76"
 }, {
 "id": 360721218,
 "work_text_reviews_count": 4924,
 "average_rating": "3.98"
 }]
}


var json3 = json1.records.concat(json2.records);

要添加第三个 JSON 对象,我知道我可以添加 .concat(json3.records) 但是如何在循环中动态连接 JSON 对象?

示例: 说 values.length = 5,这意味着需要连接 5 个 JSON 对象。

for (var i=0; i<values.length ; i++) {

response= UrlFetchApp.fetch(url);
Utilities.sleep(1000);
var results = JSON.parse(response);

// this works now (had a typo here)
var jsonVar = jsonVar.concat(results.records); 

}

【问题讨论】:

  • 什么(你认为)“JSON 对象”是什么?
  • 它看起来更像是一个异步问题,而不是一个 concat 问题。
  • 对不起,我忽略了我的代码中的一个错误。我在var jsonVar = jsonVar.records.concat(results.records); 中有一个额外的“记录”,应该是var jsonVar = jsonVar.concat(results.records);
  • @dean2020 不要在 cmets 中进行更正,编辑问题并修复它。似乎还有一个错字:results = UrlFetchApp.fetch(url) 应该是response = ...

标签: javascript json


【解决方案1】:

你可以这样做:

var jsonVar = [];
for (var i=0; i<values.length ; i++) {

  results= UrlFetchApp.fetch(url);
  Utilities.sleep(1000);
  var results = JSON.parse(response);

  jsonVar = jsonVar.concat(results.records); 

}

但我不确定这是否可行,因为UrlFetchApp.fetch() 似乎是异步的。这意味着如果 response 花费超过 1000 毫秒,则不能保证将其初始化为正确的值

【讨论】:

    【解决方案2】:

    JSON 对象是一个 Javascript 对象。可以动态设置对象名

      for (var i=0; i<values.length ; i++) {
      json[i].records.concat(json[i + 1].records)
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多