谷歌应用程序脚本从联系人返回对象

时间:2017-06-30 23:02:32

标签: json object google-apps-script contacts

我的代码:

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"或任何密钥用于全名。

1 个答案:

答案 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:类型对象的预期参数,但是具有类型对象。”