我使用Google plus API并从中获取此数据,并且在解析此JSON数据时出现错误

javascript - 用javascript解析JSON数据-LMLPHP

javascript - 用javascript解析JSON数据-LMLPHP

这是我用来解析此数据并在测试数据对象时出错并能正常工作并保存数据的代码,就像过去两张图片中显示的一样

var allIems = data.items;
for (var element in allIems) {
  document.getElementById('datafromapi').innerHTML +=
    (" , published time :" + element.published +
      " , last updated time :" + element.updated +
      ", complete url : " + element.url

    );
  var obj = element.object.attachments;

  document.getElementById('datafromapi').innerHTML +=
    (+"\nattachments of post :\n" +
      " type : " +
      obj[0].objectType +
      " ,displayName of content : " +
      obj[0].displayName +
      " ,content URL  : " +
      obj[0].url +
      " ,content data :" +
      obj[0].image.url +
      " ,content type : " +
      obj[0].image.type +
      " ,content height : " +
      obj[0].image.height +
      " ,content width : " +
      obj[0].image.width +
      "\n\n\n");


}
});


我出现了该错误


  未捕获的TypeError:无法读取未定义的属性“附件”

最佳答案

element个值

for (var element in allIems) {


allItems的键,在这种情况下为数组索引。您必须像这样解决实际的数组项:

var obj = allItems[element].object.attachments;


您的代码element.object.attachments;尝试访问数字的属性object,该属性不存在。

由于我们知道allItems是一个数组,因此您可以编写:

for (var i = 0; i < allIems.length; i++) {
  var obj = allItems[i].object.attachments;

07-24 09:50
查看更多