###前提・実現したいこと
JavaScript初心者です。お手柔らかにお願いいたします…
とあるゲームサイトのJSONAPIデータを用いて1時間に1回実行しスプレッドシートに随時記録していくスクリプトを組みたいのですが、今まで触ってきたデータとは異なるものでかれこれ3時間ほど頭を抱えています。
APIデータの中から「"area_id"」別のデータをカウントし、それをスプレッドシートに書き込ませるようにしたいのです。
1時間に1回実行するところや、スプレッドシートに書き込むところ(GetRange(x, x).setValue(xxx))はすでに知っています。が、どれを使ってデータを引っ張ってきて仕分けていくのかがさっぱりわかりません…
###該当のソースコード
使いたいAPI→https://so2-api.mutoys.com/json/sale/all.json
定義など→https://so2-docs.mutoys.com/common/api.html
[
{
"sale_serial": 販売通し番号(number),
"area_id": 街ID(number),
"pos_x": X座標(number),
"pos_y": Y座標(number),
"user_id": オーナー番号(number),
"shop_id": ショップ番号(number),
"shop_name": ショップ名(string),
"item_id": 商品ID(number),
"price": 販売単価(number),
"unit": 販売在庫数(number),
"bundle_sale": まとめ売り(number) // 0:ばら売り 1:まとめ売り
},
...
]
function TotalSO2() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('total'); var response = UrlFetchApp.fetch('https://so2-api.mutoys.com/json/sale/all.json'); var responseList = JSON.parse(response.getContentText()); var GetDate = new Date(); // Spreadsheetに書き出し //行の追加 sheet.insertRowAfter(1); //行が2000行を超えたら削除していく var LastRow = sheet.getLastRow(); if(LastRow > 2000){ sheet.deleteRows(LastRow, 1); } //ここに、responseListのArrayから特定の「"area_id":x」 を抜き出してカウントし、// //下のsetValueに反映させてareaid別にスプレッドシートに書き込みたい// sheet.getRange(2, 1).setValue(GetDate); //データ日時の取得 sheet.getRange(2, 2).setValue(xx); sheet.getRange(2, 2).setValue(xx); }
###試したこと
searchStr,countなどと呼ばれるものは一通りWebサイトを見て試しました。空白のセルが書き出されるか、undefinedが出てきます。
回答2件
あなたの回答
tips
プレビュー