Javascript 如何检测JSON响应的空元素
在一个AJAX调用之后,我得到了一个JSON响应。响应包含一些元素,如id、name、number等。该方法有时只返回id和number,在其他情况下返回id、name和number。在AJAX的成功部分,我正在测试JQuery方法是否获得了正确的键。当像name这样的键不存在时,我得到一个错误: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: {
无法读取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”