我的代码:
function testjson() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var group = ContactsApp.getContactGroup('MyFriends');
var contacts = group.getContacts();
var json = JSON.stringify(contacts[0]);
Logger.log(json);
}
使用调试器时,我可以看到返回的contacts变量是一个包含18个对象的数组。调试器显然无法扩展"对象。所以我包含JSON.stringify
来获取字符串。运行代码后,json变量的值为"{}"
。我真正想要的是查看contacts对象中的键名,以便我可以直接访问字段值。我没有使用"var name = contacts[i].getFullName();"
,而是使用"var name = contacts[i].fullname"
或任何密钥用于全名。
答案 0 :(得分:3)
Google不允许您像这样访问Contact对象的属性,您必须使用它提供的getFullName()等方法。
对于像Array这样的内置对象,您可以使用以下命令列出其属性:
function getArrayProperties() {
Logger.log(Object.getOwnPropertyNames(Array));
}
但是,如果您尝试使用Contact或ContactsApp对象:
function getContactProperties() {
var contact = ContactsApp.getContacts()[0]
Logger.log(Object.getOwnPropertyNames(contact));
}
你得到:“TypeError:类型对象的预期参数,但是具有类型对象。”