スクリプトのプロパティに配列を入れようとしたら [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()でその配列を取り出す