在 Jquery 中检查 JSON 响应中的表是否为空

问题描述 投票:0回答:1

我有一个 JSON 响应,其中有 5 个表。所以我解析同样的

JSON
。解析后,我得到的第一个表为
[]
。所以我想检查一下这个情况。下面是 JSON 响应和解析。

var dataResponse = JSON.parse(response);
var NE_length_Data = "";
if (dataResponse != null || dataResponse != undefined) {

  var FSAInfoData = dataResponse.Table; // UG
  var FSAInfoData1 = dataResponse.Table1; // MDU
  var FSAInfoData2 = dataResponse.Table2; // AR
  var FSAInfoData3 = dataResponse.Table3; // vendor
  var FSAInfoData4 = dataResponse.Table4; // history
  var FSAInfoData5 = dataResponse.Table5; // progress data

  $("#spnFiberEngFsaId").text(FSA_IDNew);
  $("#spnProgressID").text(FSAInfoData5[0].JOB_PROGRESS_ID);

  var NE_LENGTH = FSAInfoData[0].UG_LENGTH + FSAInfoData2[0].AR_LENGTH; // Here I want to add condition to check null for 1st table
  $("#spnFiberEngFsaLength").text(NE_LENGTH.toFixed(4));

}

由于未检查此 null,我的代码未进一步执行。请帮忙

javascript html jquery json
1个回答
0
投票

在尝试索引数组之前检查长度。

var NE_LENGTH = (FSAInfoData.length == 0 ? 0 : FSAInfoData[0].UG_LENGTH) + FSAInfoData2[0].AR_LENGTH;

因此,如果第一个表的长度为 0,则默认为 0,而不是

FSAInfoData[0].UG_LENGTH

另一种方法是使用可选链来防止尝试访问不存在元素的属性时出现错误,并

??
提供默认值。

var NE_LENGTH = (FSAInfoData[0]?.UG_LENGTH ?? 0) + FSAInfoData2[0].AR_LENGTH;
© www.soinside.com 2019 - 2024. All rights reserved.