代码之家  ›  专栏  ›  技术社区  ›  Md Kamran Azam

如何使用JQuery从JSON中的嵌套数组、嵌套对象或类似条件中提取值

  •  -2
  • Md Kamran Azam  · 技术社区  · 6 年前

    我得到了一个JSON格式的结果,其中object可以在数组中,object可以在object中,或者类似的场景类型中。如何使用JQuery提取数组或对象中的任何特定值。

    下面是存储在变量result中的JSON示例。

    var result= {
      "to_station": {
        "name": "ANAND VIHAR TERMINAL",
        "lat": 28.6118176,
        "lng": 77.2888291,
        "code": "ANVT"
      },
      "train": {
        "name": "VIKRAMSHILA EXP",
        "classes": [
          {
            "name": "3rd AC ECONOMY",
            "available": "N",
            "code": "3E"
          },
          {
            "name": "FIRST CLASS",
            "available": "N",
            "code": "FC"
          },
          {
            "name": "FIRST AC",
            "available": "Y",
            "code": "1A"
          },
          {
            "name": "SECOND AC",
            "available": "Y",
            "code": "2A"
          },
          {
            "name": "SECOND SEATING",
            "available": "N",
            "code": "2S"
          },
          {
            "name": "AC CHAIR CAR",
            "available": "N",
            "code": "CC"
          },
          {
            "name": "SLEEPER CLASS",
            "available": "Y",
            "code": "SL"
          },
          {
            "name": "THIRD AC",
            "available": "Y",
            "code": "3A"
          }
        ],
        "days": [
          {
            "runs": "Y",
            "code": "MON"
          },
          {
            "runs": "Y",
            "code": "TUE"
          },
          {
            "runs": "Y",
            "code": "WED"
          },
          {
            "runs": "Y",
            "code": "THU"
          },
          {
            "runs": "Y",
            "code": "FRI"
          },
          {
            "runs": "Y",
            "code": "SAT"
          },
          {
            "runs": "Y",
            "code": "SUN"
          }
        ],
        "number": "12367"
      },
      "from_station": {
        "name": "BHAGALPUR",
        "lat": 25.2494829,
        "lng": 86.9828131,
        "code": "BGP"
      },
      "quota": {
        "name": "GENERAL QUOTA",
        "code": "GN"
      },
      "availability": [
        {
          "status": "GNWL37/WL24",
          "date": "25-8-2018"
        },
        {
          "status": "GNWL17/WL10",
          "date": "26-8-2018"
        },
        {
          "status": "GNWL14/WL11",
          "date": "27-8-2018"
        },
        {
          "status": "GNWL3/RAC19",
          "date": "28-8-2018"
        },
        {
          "status": "RAC   9/RAC   7",
          "date": "29-8-2018"
        },
        {
          "status": "AVAILABLE-0017",
          "date": "30-8-2018"
        }
      ],
      "debit": 3,
      "response_code": 200,
      "journey_class": {
        "name": "THIRD AC",
        "code": "3A"
      }
    }
    

    假设我想提取所有结果日期的状态(内部可用性),我应该如何使用JQuery进行相同的操作。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sheikh Azad    6 年前

    如果使用jQuery,可以尝试以下操作:

    $.each(result.availability, function(idx, data){
        //status is available as data.status
        console.log(data.date + ' ' + data.status);
    });
    

    您还可以使用普通javascript实现相同的功能:

    for(var idx in result.availability){
        //status is available as result.availability[idx].status
        console.log(result.availability[idx].date + ' ' + result.availability[idx].status);
    }
    

    希望这有帮助。