2016-04-23 7 views
-2

更新:サンプルコードの間違いが修正されました。私の問題は、追加の「レコード」が原因で発生していることが判明しました。var jsonVar = jsonVar.concat(results.records);ループ内のconcat JSONオブジェクト(No JQuery)

JSONオブジェクトをループ内でどのように連結できますか?ループ内で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); 

は私がちょうど.concat(json3.records) を追加することができます知っている第3回JSONオブジェクトを追加するのではなく、どのように私は動的に連結することができます:私はこのような2つのJSONオブジェクトをCONCATことができますか?

例: これは、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); 

} 
+1

"JSONオブジェクト"は何ですか? – Amit

+0

これは、連結問題よりも非同期の問題に似ています。 –

+0

多分あなたはここを見ています:http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron –

答えて

0

あなたのような何かを行うことができます:

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が1000msを超えると値が正しくなるように初期化されないことを意味します。

-1

JSONオブジェクトはJavascriptオブジェクトです。オブジェクト名を動的に設定することができます

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