我从外部网站拉json。当我解析它时,我从他们的JSON中获取了一个包含此代码的字符串:
breweryName = data.data[i].breweries[0].name;
问题是我收到的JSON中的一个条目没有breweries [0] .name的值。
我如何继续执行代码?尽管有一个不好的条目我试过这个:
if(data.data[i].breweries[0].name === "undefined"){
breweryName = "N/A"
}
else{
breweryName = data.data[i].breweries[0].name;
}
仍然失败
答案 0 :(得分:0)
首先通过检查size属性检查给定索引breweries
是否存在i
以及是否存在嵌套元素;在内部循环中,它使用name
检查typeof()
属性:
if(
typeof(data.data[i].breweries) !== 'undefined' &&
data.data[i].breweries.size > 0
){
/* traverse the individual entries */
data.data[i].breweries.forEach(function(v, i){
if(typeof(v.name) !== 'undefined'){
/* the element has a name property */
} else {
/* name property is absent */
}
});
}
下次请提供一些示例数据,这样可以更轻松地回答。
因为它可能是数组或对象......需要不同的处理。
答案 1 :(得分:-1)
在JavaScript中,使用typeof函数
if (typeof data.data[i].breweries === "undefined" ||
typeof data.data[i].breweries[0] === "undefined" ||
typeof data.data[i].breweries[0].name === "undefined")
您可能还想包含
if (data.data[i].breweries[0].name.trim() === "")
检查存在的名称,但是为空。
快捷方法也可以起作用......
breweryName = data.data[i].breweries[0].name || "N/A"