google 应用程序脚本属性服务 getProperties() returns 值未定义
google app script properties service getProperties() returns value as undefined
我有一个包含 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]
访问 属性 值时,如 documentation 中所述 returns undefined
.
当我尝试使用 userProperties.getProperty(i)
访问值时,它 returns 我得到了值。
我的问题是为什么我无法通过这种方式访问属性:
for(var i in pro){
Logger.log(pro[i]); // returns undefined
}
但下面这段代码有效
for(var i in pro){
Logger.log(userProperties.getProperty(i)); //successfully returns value
}
我找到了答案,问题出在键上,PropertiesService
只允许键和值都是 String
类型。
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
}
所以键和值都应该是字符串类型
我有一个包含 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]
访问 属性 值时,如 documentation 中所述 returns undefined
.
当我尝试使用 userProperties.getProperty(i)
访问值时,它 returns 我得到了值。
我的问题是为什么我无法通过这种方式访问属性:
for(var i in pro){
Logger.log(pro[i]); // returns undefined
}
但下面这段代码有效
for(var i in pro){
Logger.log(userProperties.getProperty(i)); //successfully returns value
}
我找到了答案,问题出在键上,PropertiesService
只允许键和值都是 String
类型。
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
}
所以键和值都应该是字符串类型