LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

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()でその配列を取り出す



最新の投稿

Pixel 5でSuicaが使えないときはGoogle PayでSuicaを有効にしてみる

Pixel 5への機種変でSuicaが使えない人向けに書きました。 MISSION Pixel 5でSuicaを使えるようにする SOLUTION 旧端末で機種変更の設定を行う NFCをオンにする Google PayでSuicaを有効にする PROBLEMS 以前...