【GAS】PropertiesServiceにてJSON形式のデータ保存について

861 views
Skip to first unread message

秋田圭介

unread,
Aug 21, 2014, 12:21:02 AM8/21/14
to google-app...@googlegroups.com
はじめまして、AppsScriptのPropertiesServiceについて質問させてください。
PropertiesServiceのscriptPropertyでJSON形式のデータを保存した際に、数ヶ月前までは
{"type":"super","nam":2}
このような形で保存できていましたが、本日確認したところ、
{"type"="super","nam"=2}
このようにイコールで区切られた形になっておりました。

既存のscriptPropertyのデータはそのままでしたが、新しくscriptPropertyにGASから登録したデータは上記のようになってしまいました。
データを受け取る際にチェックして置換すれば問題ないのですが、プロジェクトのプロパティから手動でscriptPropertyの値を変更しようとしたら反映されなかったりとscriptProperty自体使わないほうがいいのかな?と不安になったので質問させていただきました。
この変更についての情報など記載しているところがあれば教えてください。

soundTricker

unread,
Aug 26, 2014, 9:18:58 PM8/26/14
to google-app...@googlegroups.com
To 秋田さん

こんにちは大橋です。
前提としてPropertyServiceは文字列のみしか保存形式としてサポートしていません。

なのでもし今まで、

function myFunction() {
 
var prop = PropertiesService.getScriptProperties();
 
  prop
.setProperty("key", {"a":"b"});  
}

の用にJSONとしてデータを保存していた場合挙動が変わっている可能性はあるかもしれません。 
※仕様やドキュメント上オブジェクトとして代入された物がどうなるかの記述がないので。
ただそのへんの仕様を変えた報告や、Issue、噂は聞いてないです。

少なくとも私がもっているスクリプトでは全て文字列として保存しているので、前後動かなくなったようなスクリプトはありません。
どうしてもJSON形式で保存する場合はJSON文字列にして保存したほうが良いですね。


function myFunction() {
 
var prop = PropertiesService.getScriptProperties();
 
  prop
.setProperty("key", JSON.stringify({"a":"b"}));  
}











2014年8月21日木曜日 13時21分02秒 UTC+9 秋田圭介:

秋田圭介

unread,
Sep 5, 2014, 2:41:14 AM9/5/14
to google-app...@googlegroups.com
大橋様

ご回答ありがとうございます。
こちらで勘違いしていた部分があったようです。
ご丁寧に解説していただきまして大変参考になりました。
ありがとうございました。

2014年8月27日水曜日 10時18分58秒 UTC+9 soundTricker:
Reply all
Reply to author
Forward
0 new messages