Javascript JSON未捕获类型错误
我使用的是instagram API,如果标题不存在或没有文本,则根本不包括节点。因此,我包含了一个检查,以查看标题是否存在,但如果标题存在而子节点文本不存在,那么我会得到错误:Javascript JSON未捕获类型错误,javascript,json,Javascript,Json,我使用的是instagram API,如果标题不存在或没有文本,则根本不包括节点。因此,我包含了一个检查,以查看标题是否存在,但如果标题存在而子节点文本不存在,那么我会得到错误:uncaughttypeerror:cannotread属性'text'为null 这是我的代码: for (p in pictures) { if (pictures[p].hasOwnProperty('caption')) { if (pictures[p].caption.text != null)
uncaughttypeerror:cannotread属性'text'为null
这是我的代码:
for (p in pictures) {
if (pictures[p].hasOwnProperty('caption')) {
if (pictures[p].caption.text != null) {
captionString = pictures[p].caption.text;
}
}
}
显然,
caption
属性存在,但在某些情况下它似乎是null
,当您计算(null).text
时,您将得到问题中详细的错误
添加pictures[p].caption&
以评估内部if
中的caption
这应该对您有用(请注意,我还合并了您的两个if
s,并且我只在一个if
中进行了所有评估):
你可以试试:
if(pictures[p].caption != null){
captionString = pictures[p].caption.text;
}
而不是
if(pictures[p].hasOwnProperty('caption')){
if(pictures[p].caption.text != null){
captionString = pictures[p].caption.text;
}
}
因为caption属性始终在此处,但如果不可用,则可能为null如果caption为null,则没有标题?(但是这里有一个caption属性来通知您没有可用的caption),因此只有当caption属性不是null时,您才应该添加captionString,但是可以有一个caption而没有caption文本。不知道为什么,但它发生了。我检查了JSON输出,它似乎工作正常。你知道为什么这样做有效,但不是我做的方式吗?为什么我在嵌套if语句检查时出错,而不是在这一点上?请注意,我做了一些重构,并合并了您的2个“ifs”,重点是我为
图片[p]添加了一个求值。说明
,如果这是null
,则if语句将返回false
if(pictures[p].hasOwnProperty('caption')){
if(pictures[p].caption.text != null){
captionString = pictures[p].caption.text;
}
}