Google apps script google应用程序脚本属性服务getProperties()返回未定义的值

Google apps script google应用程序脚本属性服务getProperties()返回未定义的值,google-apps-script,google-docs-api,Google Apps Script,Google Docs Api,我有一个包含JSON的键值映射 var prop = { 0 : [{"start":0, "end":10}, {"start":15, "end" : 30}], 1 : [{"start":3, "end":11}], 2 : [{"start":6, "end":9},{"start":9,"end" :17},{"start":32,"end":39}], 4 : [], 5 : [{"start":19,"end":27}] }; 我想将

我有一个包含JSON的键值映射

 var prop = {
    0 : [{"start":0, "end":10}, {"start":15, "end" : 30}],
    1 : [{"start":3, "end":11}],
    2 : [{"start":6, "end":9},{"start":9,"end" :17},{"start":32,"end":39}],
    4 : [],
    5 : [{"start":19,"end":27}]
 };
我想将此对象保存在
PropertiesService
userProperties
中,因此我首先将值字符串化(因为
PropertiesService
只允许字符串值),然后保存它

for(var i in prop){
    prop[i] = JSON.stringify(prop[i]);
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperties(prop, true);
稍后,当我使用
Properties.getProperties()
方法检索属性时,它返回属性对象

var userProperties = PropertiesService.getUserProperties();
var pro = userProperties.getProperties();
问题是
Logger.log(pro)
向我显示
prop
对象,但当我尝试使用
pro[index]
访问属性值时,它会返回
未定义的

当我尝试使用
userProperties.getProperty(I)
访问值时,它会返回值

我的问题是为什么我不能以这种方式访问属性:

for(var i in pro){
    Logger.log(pro[i]);   // returns undefined
}
但下面的代码是有效的

for(var i in pro){
    Logger.log(userProperties.getProperty(i));  //successfully returns value
}

我已经找到了答案,问题在于键,
属性服务
只允许键和值都是
字符串
类型

var prop = {
    "p0" : [{"start":0, "end":10}, {"start":15, "end" : 30}],
    "p1" : [{"start":3, "end":11}],
    "p2" : [{"start":6, "end":9},{"start":9,"end" :17},{"start":32,"end":39}],
    "p4" : [],
    "p5" : [{"start":19,"end":27}]
};
现在,当我使用键访问值时,它工作了

var userProperties = PropertiesService.getUserProperties();
var pro = userProperties.getProperties();
for(var i in pro){
    Logger.log(pro[i]);   // returns value successfully
}
所以键和值都应该是字符串类型