Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测JSON响应的空元素_Javascript_Jquery_Json_Ajax - Fatal编程技术网

Javascript 如何检测JSON响应的空元素

Javascript 如何检测JSON响应的空元素,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,在一个AJAX调用之后,我得到了一个JSON响应。响应包含一些元素,如id、name、number等。该方法有时只返回id和number,在其他情况下返回id、name和number。在AJAX的成功部分,我正在测试JQuery方法是否获得了正确的键。当像name这样的键不存在时,我得到一个错误:无法读取null的属性“name”。很明显,我的if状况有问题 $.ajax({ url: "edit_info", type: 'POST', data: {

在一个AJAX调用之后,我得到了一个JSON响应。响应包含一些元素,如id、name、number等。该方法有时只返回id和number,在其他情况下返回id、name和number。在AJAX的成功部分,我正在测试JQuery方法是否获得了正确的键。当像name这样的键不存在时,我得到一个错误:
无法读取null的属性“name”
。很明显,我的if状况有问题

$.ajax({
      url: "edit_info",
      type: 'POST',
      data: {
        'id': id
      },
      success: function(data) {
        if (data.name) {
          console.log(data.name);
      }
});

因此,当您获得
时,任何可选的都无法读取null的属性“name”
,这意味着您的
数据
对象是
null

您可以检查falsy值

if(data && data.name){
    console.log(data.name);
}

当您获取的
无法读取null的属性“name”
时,意味着您的
数据
对象是
null

您可以检查falsy值

if(data && data.name){
    console.log(data.name);
}
运算符的使用类型

if(typeof data.name!='undefined')
{
    console.log(data.name)
}
运算符的使用类型

if(typeof data.name!='undefined')
{
    console.log(data.name)
}

typeof
允许以前从未声明过标识符

if (typeof data.name != "undefined" && data.name.trim().length) {
     console.log(data.name);
}

typeof
允许以前从未声明过标识符

if (typeof data.name != "undefined" && data.name.trim().length) {
     console.log(data.name);
}
Jquery为您提供了任务的函数

if ( data.length != 0 ){
    console.log(data.name);
}
Jquery为您提供了任务的函数

if ( data.length != 0 ){
    console.log(data.name);
}


@Mir Uncaught TypeError:无法读取未定义(…)的属性“length”。
无法读取null的属性“name”
我确信它将是
未定义的
而不是
null
。数据未定义,如错误消息中所述。@Mir Uncaught TypeError:无法读取未定义(…)的属性“length”
无法读取null的属性“name”
我确信它将是
未定义的
而不是
null
。数据未定义,如错误消息中所述。可能会发生
数据。name
仅包含空白。因此,如果trim()具有类似“”的数据,则需要trim()。为了避免这种情况,但是name value可以是空字符串。它正在工作,但是没有第二部分
data.name.trim().length
@KubiRoazhon使用此
data.name.trim().length
总是很好的,当您检查空Stings时,
data.name
可能只包含空格。因此,如果trim()具有类似“”的数据,则需要trim()。为了避免这种情况,但是名称值可以是空字符串。它正在工作,但没有第二部分
数据.name.trim().length
@KubiRoazhon使用此
数据.name.trim().length
总是很好的,当您检查空井时,这将失败。。它将抛出类似于
uncaughttypeerror:cannotreadproperty'length'的未定义(…)
的错误,这将失败。。它将抛出类似于
uncaughttypeerror:无法读取未定义(…)的属性“length”