8

我使用以下 javascript。它写得很好,直到它得到一个没有值的结果。在控制台日志中它显示了这个

未捕获的类型错误:无法读取 null 的属性“文本”

但我下面的脚本似乎不起作用

            var checkCaption = photo.caption.text;
            if (checkCaption == null) {
                caption = 'meh';
            } else {
                caption = photo.caption.text;
            }
4

3 回答 3

17

在您的示例中,photo.caption为空,因此photo.caption.text在检查完成之前,您的代码会在调用中中断。

var caption;

if(photo.caption != null) { // Covers 'undefined' as well
  caption = photo.caption.text;
} else {
  caption = "meh";
}
于 2012-10-07T16:06:31.393 回答
5

在我的情况下,我使用 JSON.stringify 来检查我是否收到了来自 REST 服务器的 {} (null) 响应:

 if (JSON.stringify(response.data)=='{}') {
      //the response is null
 }
 else {
      //the response of JSON is not null
 }

检查响应是否为空对我来说效果很好。

于 2015-09-05T01:31:58.513 回答
1

对我来说,检查 json 对象的长度解决了这个问题 -

   if Object.keys(jsonobj).length == 0){
     // JSON object is null
    }
   else {
     // JSON object has data 
    }
于 2020-01-16T13:32:36.510 回答