Json google应用程序脚本从联系人返回对象

Json google应用程序脚本从联系人返回对象,json,object,google-apps-script,contacts,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);

我的代码:

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”
或全名的任何键。

谷歌不会让你访问像这样的联系人对象的属性,你必须使用它提供的像getFullName()这样的方法

对于内置对象(如Array),您可以使用以下命令列出其属性:

function getArrayProperties() {
  Logger.log(Object.getOwnPropertyNames(Array));
}
但如果您尝试使用Contact或ContactsApp对象:

function getContactProperties() {
  var contact = ContactsApp.getContacts()[0]      
  Logger.log(Object.getOwnPropertyNames(contact));
}

您刚刚得到:“TypeError:类型对象的预期参数,而不是类型对象。”

我在Demandware中也面临同样的情况,请您指出是否有访问这些属性的方法,至少用于读取?对不起,看不到访问Google联系人和Demandware之间的关系:?唯一的关系是字符串化对象导致无用的“{}”的问题。似乎有些“动态属性”无法通过列出对象键来访问,所以我希望我们的问题之间有某种相似之处。