如果item.NestObj.textpropertyVal
不正确,我该如何打电话给他们?
success: function(data){
var html = "";
$.each(data.mainOutterObj, function (index, item) {
html += "<ul>";
console.log(item);
//$.each(item.data, function (index1, item1) {
html += "<li class='id'>" + item.id + "</li>";
html += "<li class='title'>" + item.title + "</li>";
html += "<li class='cast'>" + item.cast.name + "</li>";
html += "<li class='genre'>" + item.genre.type + "</li>";
//});
html += "</ul>";
});
一旦我开始尝试访问内部或嵌套对象属性,它们就会报告undefined
。例如,低于2失败。 (仅作为[object Object]
输出)或未定义。大概是因为我没有以正确的方式访问它。基本上,强制转换和流派是.mainOutterObj
中的嵌套对象,我想要的属性值包含.name
和.type
等字段。
html += "<li class='cast'>" + item.cast.name + "</li>";
html += "<li class='genre'>" + item.genre.type + "</li>";
如何迭代并输出这些,与外部obj属性值相同?
例如,这里是嵌套强制转换对象的响应,您会注意到。name
存在。但是当item.cast.name
如上所述,它报告未定义。
答案 0 :(得分:3)
您的cast
是一个包含一个元素的数组。你应该:
html += "<li class='cast'>" + item.cast[0].name + "</li>";
html += "<li class='genre'>" + item.genre[0].type + "</li>";
您必须先获取cast
的第一个元素(元素0),然后才能获取属性name
答案 1 :(得分:0)
采取以下声明:
html += "<li class='cast'>" + item.cast.name + "</li>";
现在,如果html
的值为undefined
,则表示name
对象中没有名为item.cast
的属性。
如果值为[Object Object]
,则表示item.cast.name
是对象而不是sting或数值。