LoginSignup
2
5

More than 3 years have passed since last update.

<スプレ>GASでAPI(json)を送受信する(GAS)

Posted at

あるツールに対してデータを送信した時に使ったコードをメモとして残します。

結論(jsonを分解)

JSON.parseを使用する。

JSON.parse( "取得したjson" );

結論(jsonを分解:URLでリクエストした場合)

JSON.parseに加えて、UrlFetchApp.fetch、getContentText()を使用する。

JSON.parse(UrlFetchApp.fetch("リクエストURL").getContentText()); 

結論(jsonを分解:keyやvalueをそれぞれ取得したい場合)

 Object.entries

結論(jsonを作る)

JSON.stringify( data );

具体例

function test() {

  //jsonを分解する  
  var jget ='{"a":"アイウエオ","b":"カキクケコ"}';
  var jarr = JSON.parse(jget); 
  Logger.log(jarr) //{a=アイウエオ, b=カキクケコ}
  Logger.log(jarr.a) //アイウエオ
  Logger.log(jarr.b) //カキクケコ

  //値を変更することも可能
  jarr.b = "XXX";
  Logger.log(object);//XXX

  //キー自体がわからない時は、parseではなくObject.entriesで分解がわかりやすい。
  for (var [key, value] of Object.entries(jarr)) {
    Logger.log(`${key}`);//"a" "b"
  }


  //jsonを分解する(URLでリクエストした場合)
  var url = 'リクエストURL';
  var res = UrlFetchApp.fetch(url);
  var object = JSON.parse(res.getContentText()); 
  Logger.log(object);

  //jsonを作る
  var obj = {
    name: '太郎',
    age: 30,
    area: 'Tokyo'
  } 
  var json = JSON.stringify( obj );
  Logger.log( json ); // { "name": '太郎',"age": "30","area": 'Tokyo'} 

  //jsonを作る前の辞書型の作り方

  var keys = ["name", "address", "tell" ],
      values = ["東京都庁舎", "東京都新宿区歌舞伎町1-7-1", "03-5321-1111"],  
      for (var i = 0, l = keys.length, obj = Object.create(null); i < l; ++i) {
        if (values.hasOwnProperty(i)) {
          obj[keys[i]] = values[i];
        }
      }
  console.log(JSON.stringify(obj)); // [{"name":"東京都庁舎","address":"東京都新宿区歌舞伎町1-7-1","tell":"03-5321-1111"}]

参考
GASでTwitterAPIを叩いてみる
JSON.stringifyを改めて調べる。
【JavaScript入門】JSONの作成とparse() / stringify()の使い方!
【JavaScript入門】連想配列(Dictionary)の取得/追加/ソートまとめ

スプレッドシートのデータからオブジェクトを作成
二つの配列をそれぞれkeyとvalueにして一つの連想配列にする方法

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5