代码之家  ›  专栏  ›  技术社区  ›  hud

检查Jquery中JSON响应的表null

  •  0
  • hud  · 技术社区  · 8 月前

    我有一个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没有被检查,我的代码没有得到进一步的执行。请帮忙

    1 回复  |  直到 8 月前
        1
  •  1
  •   Barmar    8 月前

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

    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;