1
在調用Utilities.jsonStringify()時,我還沒找到正確處理對象中方法的方法。基本上,我無法使用我的對象,我從CacheService中檢索它並應用Utilities.jsonParse()。Utilities.jsonStringify和對象方法
有沒有人有提示?
在此先感謝。
Marc
在調用Utilities.jsonStringify()時,我還沒找到正確處理對象中方法的方法。基本上,我無法使用我的對象,我從CacheService中檢索它並應用Utilities.jsonParse()。Utilities.jsonStringify和對象方法
有沒有人有提示?
在此先感謝。
Marc
json在字符串化/解析時不包含函數。你必須使用的東西,像homebrewn:
function func2String(obj) {
var res={};
for (x in obj) {
var value=obj[x];
res[x]=(typeof(value)=='function')?value.toString():value;
}
return res;
}
function string2Func (obj) {
var res={};
for (x in obj) {
var value=obj[x];
if(typeof(value)!='string') {
res[x]=value;
}
else {
res[x]=(value.substring(0,9)=='\nfunction')?eval('('+value+')'):value;
}
}
return res;
}
用法:
var obj=string2Func (Utilities.jsonParse(q.diff));
var str=Utilities.jsonStringify(func2String(diff));
當然解壓的funcs中失去了所有的瓶蓋。
您的JSON格式是否正確?一段說明問題的代碼會更有幫助。我已經成功地使用了CacheService對象和JSON,並沒有出現問題。 – Srik
複製/粘貼會有點長,但不要緊,因爲我可能會遇到GAS的另一個限制:我不能在CacheService中存儲大對象。我將嘗試使用ScriptDB ... – ballatom
順便說一句,我通過將存儲的對象傳遞給類構造函數來解決問題(只是達到大小限制),以便它可以從緩存實例中複製屬性。 – ballatom