LANG SELRCT

コードを書く場所についてはこちら

2019年3月1日金曜日

Google Apps Scriptでスクリプトのプロパティに配列を入れたい


スクリプトのプロパティに配列を入れようとしたら [Ljava.lang.Object;@69fc7b91 のようになり、JSON文字列にしてやるとうまくいったので備忘録として書き残しておきます。


やりたいこと

こういう風にスクリプトのプロパティに配列を入れたい



スクリプトのプロパティはここから開けます

ファイル > プロジェクトのプロパティ


JSON文字列にしないとこのように値が [Ljava.lang.Object;@69fc7b91 になる


以下のコード.gsのように
setする時は、JSON.stringify(array)
getする時は、JSON.parse(array)
にしてやるとうまくいきました。


コード.gs
function setArray() {
  var array = ['はれ', 'あめ', 'ゆき'];
  array = JSON.stringify(array);
  setProp('天気', array);
}

function getArray() {
  var key = '天気';
  var array = getProp(key);
  array = JSON.parse(array);
  Logger.log(array);
}

var scriptProp = PropertiesService.getScriptProperties();

function getProp(key) {
  return scriptProp.getProperty(key);
}

function setProp(key, value) {
  scriptProp.setProperty(key, value);
}

意訳
この機能がやること
配列を作る
JSON文字列に変換して
スクリプトのプロパティに入れます


この機能がやること
keyの値を決めて
スクリプトのプロパティから値を取得して
JSONをオブジェクトに変換して
ログに出す


スクリプトのプロパティを取得する

この機能がやること
スクリプトのプロパティにkeyを渡してその値を返す


この機能がやること
スクリプトのプロパティにkeyと値を渡して保存する



setArray()を実行してスクリプトのプロパティに配列を保存する
getArray()でその配列を取り出す