Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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_Jira - Fatal编程技术网

Javascript 处理空JSON对象

Javascript 处理空JSON对象,javascript,jquery,json,jira,Javascript,Jquery,Json,Jira,我不熟悉JSON和jQuery。我要做的是从api中获取JSON对象并将其显示为一个表。但JSON数组中的某些元素为空 比如,; JSON数组如下所示: [ {"key":"first" , "name" :{"last":"Owen"} , "age" :{"number": 18} }, {"key":"second" , "name" : null , "age" :{"number": 20} } , {"key":"third" , "name" : {"last":"J

我不熟悉JSON和jQuery。我要做的是从api中获取JSON对象并将其显示为一个表。但JSON数组中的某些元素为空

比如,; JSON数组如下所示:

[
  {"key":"first" , "name" :{"last":"Owen"} , "age" :{"number": 18} },
  {"key":"second" , "name" : null , "age" :{"number": 20}  } ,
  {"key":"third" , "name" : {"last":"Jay"} , "age" :null }
]
因此,要输入到表中,我执行以下操作:

$.each(jsonarray, function(i,data){
 $("<tr>").append(
   $.('<td>').text(data.key),
   $.('<td>').text(data.name.last),
   $.('<td>').text(data.age.number)).appendTo('.table');
});

但它非常乏味,因为我需要编写两个单独的函数来检查(1个用于名称,1个用于年龄)。我只是想知道有没有什么优雅的方法可以为所有人实现一个功能?

这能满足您的需要吗

var noDataTip = 'No Information';
$.each(jsonarray, function(i,data) {
    $("<tr>").append(
    $('<td>').text(data.key),
    $('<td>').text( (data.name && data.name.last) || noDataTip),
    $('<td>').text( (data.age && data.age.number)) || noDataTip).appendTo('.table');
});
var noDataTip='无信息';
$.each(jsonarray,函数(i,数据){
$(“”)。附加(
$('').text(data.key),
$('').text((data.name&&data.name.last)| | nodata提示),
$('').text((data.age&&data.age.number))| | noDataTip).appendTo('.table');
});

这能满足您的需要吗

var noDataTip = 'No Information';
$.each(jsonarray, function(i,data) {
    $("<tr>").append(
    $('<td>').text(data.key),
    $('<td>').text( (data.name && data.name.last) || noDataTip),
    $('<td>').text( (data.age && data.age.number)) || noDataTip).appendTo('.table');
});
var noDataTip='无信息';
$.each(jsonarray,函数(i,数据){
$(“”)。附加(
$('').text(data.key),
$('').text((data.name&&data.name.last)| | nodata提示),
$('').text((data.age&&data.age.number))| | noDataTip).appendTo('.table');
});
试试这个。:)

$。每个(jsonarray,函数(i,数据){
if(data.key==undefined | | data.key==null){
data.key='none';
}
if(data.name==undefined | | data.name==null){
data.name='none';
}
if(data.age==undefined | | data.age==null){
data.age=‘无’;
}
$(“”)。附加(
$.('').text(data.key),
$.('').text(data.name.last),
$.('').text(data.age.number)
).appendTo(“.table”);
});
试试这个。:)

$。每个(jsonarray,函数(i,数据){
if(data.key==undefined | | data.key==null){
data.key='none';
}
if(data.name==undefined | | data.name==null){
data.name='none';
}
if(data.age==undefined | | data.age==null){
data.age=‘无’;
}
$(“”)。附加(
$.('').text(data.key),
$.('').text(data.name.last),
$.('').text(data.age.number)
).appendTo(“.table”);
});
$。每个(jsonarray,函数(i,数据){
$(“”)。附加(
$.('').text(data.key),
$.('').text(data.name&&data.name.last?data.name.last:“无信息”),
$.('').text(data.age&&data.age.number?
data.age.number:“无信息”)。附录(“.table”);
});
$。每个(jsonarray,函数(i,数据){
$(“”)。附加(
$.('').text(data.key),
$.('').text(data.name&&data.name.last?data.name.last:“无信息”),
$.('').text(data.age&&data.age.number?
data.age.number:“无信息”)。附录(“.table”);
});

我将编写一个函数,对空值进行简单检查:

function checkForNull(item) {
var data = "No information";
  if(!item === null) {
     data = item;
   }    
   return data;    
}
然后您可以按如下方式使用它:

$.('<td>').text(checkForNull(data.key))
$('').text(checkForNull(data.key))

我将编写一个函数,对空值进行简单检查:

function checkForNull(item) {
var data = "No information";
  if(!item === null) {
     data = item;
   }    
   return data;    
}
然后您可以按如下方式使用它:

$.('<td>').text(checkForNull(data.key))
$('').text(checkForNull(data.key))

请总结确切的问题所在。您想遍历此JSON数组还是得到任何空值?我希望每当遇到空值时,他们都会给我“无信息”若要添加到表中,而不是抛出错误,请总结确切的问题。是否要遍历此JSON数组或获得任何空值?我希望每当遇到空值时,他们都会给我“无信息”要添加到表中而不是抛出错误,对不起,您能用这种方式帮我解释一下逻辑吗?我很困惑它是如何工作的
(data.name&&data.name.last)
表示只有
data.name
存在,然后下一个
data.name.last
将运行,此语句将返回
data.name.last的值(如果存在),否则将返回
data.name
的值(data.name&&data.name.last)| noDataTip
表示将返回
的值(data.name&&data.name.last)
如果存在,否则将返回noDataTip的值。对不起,您能不能帮我用这种方式解释一下逻辑,我很困惑它是如何工作的
(data.name&&data.name.last)
表示只有
data.name
存在,然后下一个
data.name.last
将运行,此语句将返回
data.name.last的值(如果存在),否则将返回
data.name
的值(data.name&&data.name.last)| noDataTip
表示将返回
的值(data.name&&data.name.last)
如果存在,否则将返回noDataTip的值。谢谢,这也是有效的,这是一个条件运算符吗?这是内联的if,else函数。使它更简短、更清晰、更易于阅读。在这段代码中,首先确保data.name或data.age存在。如果存在,则检查data.name.last或data.age.number是否存在,以及然后你返回“?”之后的语句。否则,你返回“:”之后的语句。这是内联if语句的缩写形式。你可以在多种语言中使用它。你可以在这里阅读更多关于它的内容。谢谢,这也行得通,这是一个条件运算符吗?这是内联if,else函数。使它更简短、更清晰,更易于使用阅读此代码时,首先要确保data.name或data.age存在。如果存在,则检查data.name.last或data.age.number是否存在,如果存在,则在“?”之后返回语句。否则,在“:”之后返回语句。这是内联if语句的缩写形式。您可以在多种语言中使用此语句。您可以阅读有关t帽子在这儿