Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
86
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@tentatsu

Google Apps ScriptでWeb上にあるJsonデータを取得してSpreadSheetに入力する

tentatsuさんの週に一つくらい技術を勉強しようコーナー
今週はGoogleAppScript + SpreadSheet

2020-03-18
コードに少しミスがあったので修正

スクリプトの作り方

この辺の記事を参考にしよう!!
http://qiita.com/negito6/items/c64a7a8589faaffcfdcf

平たく言えば、SpreadSheetのメニュー > ツール > スクリプトエディタ
から新規でスクリプトを選択して作成します。

欲しいデータのあるJSONを狙う

さがしましょう。

GoogleAppScriptでJSONデータを取得する

はい、いきなり結論です。
まず、SpreadSheetのURLを入力して、オブジェクト取得します。

で、狙いしましたJSONのURLを取得、取得したキーを配列にする。

あとは


var json = UrlFetchApp.fetch(json_url).getContentText();
var jsonData = JSON.parse(json);

という超カンタンなコマンド一発でjsonとれます。
あとは煮るなり焼くなりゴニョゴニョループして・・・


sheet.getRange(i, j).setValue(shop[idx][key]);  

という形でSpreadSheetに書き込んでおしまい。

以下が全文でござる。


 //変数spreadsheetに指定のスプレッドシートオブジェクトを取得します
  var sp_url = "https://docs.google.com/spreadsheets/d/*************/";
  var spreadsheet = SpreadsheetApp.openByUrl(sp_url);

  // 適当にページングとか
  var count = 100;
  var page = 1;
  var start = ((page-1)*count)+1

  //JSONのURL
  var url1 = "https://json_no_url/" + "?start="+start+"&count="+count;
  var keys = {
    'id' : "",
    'name' : "",
  };

function myFunctionJSON() {
  // spread sheetのシート設定
  var sheet = spreadsheet.getSheetByName("sheet1");
  var json = UrlFetchApp.fetch(url1).getContentText();
  var jsonData = JSON.parse(json);
  var shop = jsonData.results.shop;

  for (var idx in shop) {
    var j=1;
    for(var key in keys) {
      var type = typeof shop[idx][key];
      sheet.getRange(i, j).setValue(shop[idx][key]);  
      j++;
    }
    i++;
  }
}

おしまい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
86
Help us understand the problem. What are the problem?