0

我开始在 Android 上使用 volley 使用 sky-scanner API。我能够从 API 轮询响应,但是我不知道如何解析响应发送的 json,请参阅下面的 json。json 响应非常大,我以前从未使用过这样的响应,因此不知道如何处理。

有人可以帮我解决这个问题吗?没有任何人为 android 的 skyscanner 完成示例实现。要解析的 JSON 响应以获取价格、代理、航班号、承运人、飞行持续时间、航班的图像 URL。

 {
  "SessionKey": "97d1_ecilpojl_A",
  "Query": {
    "Country": "IN",
    "Currency": "INR",
    "Locale": "en-us",
    "Adults": 1,
    "Children": 0,
    "Infants": 0,
    "OriginPlace": "12627",
    "DestinationPlace": "11712",
    "OutboundDate": "2016-10-09",
    "LocationSchema": "Default",
    "CabinClass": "Economy",
    "GroupPricing": false
  },
  "Status": "UpdatesComplete",
  "Itineraries": [
    {
      "OutboundLegId": "12627-1610091100-AI-1-11712-1610091515",
      "PricingOptions": [
        {
          "Agents": [
            1963108
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 19391.08,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fat24%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            2176206
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 20190,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fcpin%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            4575202
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 20315,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fyatr%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            4056270
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 20457.92,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2ftpin%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            1943172
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 20876,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fakbt%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            3987150
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 20888.5,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2ft2in%2f1%2f12627.11712.2016-10-09%2fair%2ftrava%2fflights%3fitinerary%3dflight%7c-32672%7c446%7c12627%7c2016-10-09T11%3a00%7c10957%7c2016-10-09T12%3a35%3bflight%7c-"
        },
        {
          "Agents": [
            4035534
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 20959.41,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2ftgin%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            1964238
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 21207.92,
          "DeeplinkUrl": "/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fatin%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            4060673
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 21782,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2ftrea%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            3911604
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 21782,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fsast%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            2391001
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 21782,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http1.prod_0148f8394d6c2b79a407121f74dce6e1%26commercial_filters%3dfalse%26q_datetime_utc%3d2016-10-02T12%3a09%3a13"
        },
        {
          "Agents": [
            4260937
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 22217.64,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fviai%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            3929744
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 22417.66,
          "DeeplinkUrl": "deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http32672%26passengers%3d1%2c0%2c0%26channel%3ddataapi%26cabin_class%3deconomy%26facilitated%3dfalse%26ticket_price%3d22417.66%26is_npt%3dfalse%26is_multipart%3dfal
        }
      ],
      "BookingDetailsLink": {
        "Uri": "/apiservices/pricing/v1.0/97d115d901944a33a4084a4a3170905f_ecilpojl_A1EA190098863E15CE039BCA9C3B1D16/booking",
        "Body": "OutboundLegId=12627-1610091100-AI-1-11712-1610091515&InboundLegId=",
        "Method": "PUT"
      }
    },
    {
      "OutboundLegId": "12627-1610090820-9W,AI-1-11712-1610091515",
      "PricingOptions": [
        {
          "Agents": [
            1963108
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 37113.61,
          "DeeplinkUrl": "/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fat24%2f1%2f12627.11712.2016-10-09%2fair%2ftrava%2fflights%3fitinerary%3dflight%7c-32177%7c2367%7c12627%7c2016-"
        },
        {
          "Agents": [
            2176206
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 38374,
          "DeeplinkUrl": "/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fcpin%2f1%2f12627.11712.2016-10-09%2fair%2ftrava%2fflights%3fitinerary%3dflight%7c-32177%7c2367%7c12627%7c2016-10-09T08%3a20%7c10957%7c2016-10-09T09%3a45%3bflight%7c-"
        },
        {
          "Agents": [
            4056270
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 38854.31,
          "DeeplinkUrl": "http://partners.api.skyscanner.net/apiservices/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2ftpin%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            1964238
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 39604.31,
          "DeeplinkUrl": "/deeplink/v2?_cje=9CRwSnJAYX4dZyvkLfQf7nyRn0MxGbhiKjD2KHvGPF9n99euZVUDq%2bzBrzQGTfTH&url=http%3a%2f%2fwww.apideeplink.com%2ftransport_deeplink%2f4.0%2fIN%2fen-us%2fINR%2fatin%2f1%2f12627.11712.2016-10-"
        },
        {
          "Agents": [
            2627411
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 39932.95,
          "DeeplinkUrl": "/deeplink/v2?_1.prod_8365f3bbc5ef11ab38406bb350796374%26commercial_filters%3dfalse%26q_datetime_utc%3d2016-10-02T12%3a09%3a12"
        },
        {
          "Agents": [
            2042574
          ],
          "QuoteAgeInMinutes": 5,
          "Price": 43940.34,
          "DeeplinkUrl": "/deeplink/v2?32672%26passengers%3d1%2c0%2c0%26channel%3ddataapi%26cabin_class%3deconomy%26facilitated%3dfalse%26ticket_price%3d43940.34%26is_npt%3dfalse%26is_multipart%3dfalse%26client_id%3dskyscanner_b2b%26request_id%3dd4cc5531-1a4b-4c76-a063-447e7a8baeea%26deeplink_ids%3dap-northeast-1.prod_0b228b45aaf97f3276f40ee4109e8faf%26commercial_filters%3dfalse%26q_datetime_utc%3d2016-10-02T12%3a09%3a13"
        }
      ],
      "BookingDetailsLink": {
        "Uri": "/apiservices/pricing/v1.0/97d115d901944a33a4084a4a3170905f_ecilpojl_A1EA190098863E15CE039BCA9C3B1D16/booking",
        "Body": "OutboundLegId=12627-1610090820-9W,AI-1-11712-1610091515&InboundLegId=",
        "Method": "PUT"
      }
    }
  ],
  "Legs": [
    {
      "Id": "12627-1610091100-AI-1-11712-1610091515",
      "SegmentIds": [
        1,
        2
      ],
      "OriginStation": 12627,
      "DestinationStation": 11712,
      "Departure": "2016-10-09T11:00:00",
      "Arrival": "2016-10-09T15:15:00",
      "Duration": 255,
      "JourneyMode": "Flight",
      "Stops": [
        10957
      ],
      "Carriers": [
        841
      ],
      "OperatingCarriers": [
        841
      ],
      "Directionality": "Outbound",
      "FlightNumbers": [
        {
          "FlightNumber": "446",
          "CarrierId": 841
        },
        {
          "FlightNumber": "433",
          "CarrierId": 841
        }
      ]
    },
    {
      "Id": "12627-1610090820-9W,AI-1-11712-1610091515",
      "SegmentIds": [
        3,
        2
      ],
      "OriginStation": 12627,
      "DestinationStation": 11712,
      "Departure": "2016-10-09T08:20:00",
      "Arrival": "2016-10-09T15:15:00",
      "Duration": 415,
      "JourneyMode": "Flight",
      "Stops": [
        10957
      ],
      "Carriers": [
        471,
        841
      ],
      "OperatingCarriers": [
        471,
        841
      ],
      "Directionality": "Outbound",
      "FlightNumbers": [
        {
          "FlightNumber": "433",
          "CarrierId": 841
        },
        {
          "FlightNumber": "2367",
          "CarrierId": 471
        }
      ]
    }
  ],
  "Segments": [
    {
      "Id": 1,
      "OriginStation": 12627,
      "DestinationStation": 10957,
      "DepartureDateTime": "2016-10-09T11:00:00",
      "ArrivalDateTime": "2016-10-09T12:35:00",
      "Carrier": 841,
      "OperatingCarrier": 841,
      "Duration": 95,
      "FlightNumber": "446",
      "JourneyMode": "Flight",
      "Directionality": "Outbound"
    },
    {
      "Id": 2,
      "OriginStation": 10957,
      "DestinationStation": 11712,
      "DepartureDateTime": "2016-10-09T13:40:00",
      "ArrivalDateTime": "2016-10-09T15:15:00",
      "Carrier": 841,
      "OperatingCarrier": 841,
      "Duration": 95,
      "FlightNumber": "433",
      "JourneyMode": "Flight",
      "Directionality": "Outbound"
    },
    {
      "Id": 3,
      "OriginStation": 12627,
      "DestinationStation": 10957,
      "DepartureDateTime": "2016-10-09T08:20:00",
      "ArrivalDateTime": "2016-10-09T09:45:00",
      "Carrier": 471,
      "OperatingCarrier": 471,
      "Duration": 85,
      "FlightNumber": "2367",
      "JourneyMode": "Flight",
      "Directionality": "Outbound"
    }
  ],
  "Carriers": [
    {
      "Id": 841,
      "Code": "AI",
      "Name": "Air India",
      "ImageUrl": "http://s1.apideeplink.com/images/airlines/AI.png",
      "DisplayCode": "AI"
    },
    {
      "Id": 471,
      "Code": "9W",
      "Name": "Jet Airways",
      "ImageUrl": "http://s1.apideeplink.com/images/airlines/9W.png",
      "DisplayCode": "9W"
    }
  ],
  "Agents": [
    {
      "Id": 1963108,
      "Name": "Mytrip",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/at24.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "BookingNumber": "+448447747881",
      "Type": "TravelAgent"
    },
    {
      "Id": 2176206,
      "Name": "Cheapticket.in",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/cpin.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 4575202,
      "Name": "Yatra.com",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/yatr.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "BookingNumber": "18001029900",
      "Type": "TravelAgent"
    },
    {
      "Id": 4056270,
      "Name": "Tripsta",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/tpin.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 1943172,
      "Name": "AkbarTravels.com",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/akbt.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 3987150,
      "Name": "Travel2be",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/t2in.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 4035534,
      "Name": "Travelgenio",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/tgin.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 1964238,
      "Name": "airtickets",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/atin.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 4060673,
      "Name": "Traveasy.co.in",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/trea.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 3911604,
      "Name": "Sastiticket.com",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/sast.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 2391001,
      "Name": "EaseMyTrip.com",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/emti.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 4260937,
      "Name": "via.com",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/viai.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 3929744,
      "Name": "Simplio",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/simp.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 2627411,
      "Name": "GotoGate",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/gtas.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 2042574,
      "Name": "Bravofly",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/bfin.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 1882712,
      "Name": "ebookers",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/a178.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": true,
      "Type": "TravelAgent"
    },
    {
      "Id": 4366985,
      "Name": "Wegoby.com",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/wgby.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 3291237,
      "Name": "My Travel Genie",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/mtge.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 3588558,
      "Name": "Tripair",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/pein.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "Type": "TravelAgent"
    },
    {
      "Id": 2834897,
      "Name": "Air India",
      "ImageUrl": "http://s1.apideeplink.com/images/websites/inda.png",
      "Status": "UpdatesComplete",
      "OptimisedForMobile": false,
      "BookingNumber": "18001801407",
      "Type": "Airline"
    }
  ],
  "Places": [
    {
      "Id": 12627,
      "ParentId": 3462,
      "Code": "IXL",
      "Type": "Airport",
      "Name": "Leh"
    },
    {
      "Id": 10957,
      "ParentId": 3401,
      "Code": "DEL",
      "Type": "Airport",
      "Name": "New Delhi"
    },
    {
      "Id": 11712,
      "ParentId": 3424,
      "Code": "GAY",
      "Type": "Airport",
      "Name": "Gaya"
    },
    {
      "Id": 3462,
      "ParentId": 170,
      "Code": "IXL",
      "Type": "City",
      "Name": "Leh"
    },
    {
      "Id": 3401,
      "ParentId": 170,
      "Code": "DEL",
      "Type": "City",
      "Name": "New Delhi"
    },
    {
      "Id": 3424,
      "ParentId": 170,
      "Code": "GAY",
      "Type": "City",
      "Name": "Gaya"
    },
    {
      "Id": 170,
      "Code": "IN",
      "Type": "Country",
      "Name": "India"
    }
  ],
  "Currencies": [
    {
      "Code": "INR",
      "Symbol": "₹",
      "ThousandsSeparator": ",",
      "DecimalSeparator": ".",
      "SymbolOnLeft": true,
      "SpaceBetweenAmountAndSymbol": false,
      "RoundingCoefficient": 0,
      "DecimalDigits": 2
    }
  ]
}
4

2 回答 2

0

如果您能够提取 json 数据,请尝试使用此 js 脚本:

  1. 确保添加 jQuery
  2. 使用您创建的会话轮询 url更改url变量的值

注意:请注意,当您尝试在此处运行此脚本时会遇到跨源错误。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">

( function( window, document, $ ){

    var app = {};


    app.init = function()
    {
       app.flightsGeo();
    };
    
    app.flightsGeo = function( )
    {     
        // the session poll url you created
        var url = 'http://business.skyscanner.net/apiservices/pricing/hk1/v1.0/<sessionKey>?apikey=<apikey>';
        $.ajax({
            type: "GET",
            url: url,
            dataType: 'json',
            success: function( response ){
                var itineraries = response.Itineraries;
                var agents      = response.Agents;
                var legs        = response.Legs;
                var carriers    = response.Carriers;
                var places      = response.Places;

                $.each(itineraries, function( itineraryKey, itineraryVal ){
                    var inbound          = app.getObjects( legs, 'Id', itineraryVal.InboundLegId),
                        inDepartureTime = inbound[0].Departure,
                        inArrivalTime   = inbound[0].Arrival,
                        inDepartureDate = inbound[0].Departure,
                        inArrivalDate   = inbound[0].Arrival,
                        inOrigin        = app.getObjects( places, 'Id', inbound[0].DestinationStation),
                        inDestination   = app.getObjects( places, 'Id', inbound[0].OriginStation),
                        inCarriers      = app.getObjects( carriers, 'Id', inbound[0].OperatingCarriers[0]);

                    var outbound         = app.getObjects( legs, 'Id', itineraryVal.OutboundLegId),
                        outDepartureTime = outbound[0].Departure,
                        outArrivalTime   = outbound[0].Arrival,
                        outDepartureDate = outbound[0].Departure,
                        outArrivalDate   = outbound[0].Arrival,
                        outOrigin        = app.getObjects( places, 'Id', outbound[0].DestinationStation),
                        outDestination   = app.getObjects( places, 'Id', outbound[0].OriginStation),
                        outCarriers      = app.getObjects( carriers, 'Id', outbound[0].OperatingCarriers[0]);


                    var agent     = app.getObjects( agents, 'Id', itineraryVal.PricingOptions[0].Agents[0]);
                    var price     = itineraryVal.PricingOptions[0].Price.toFixed(2);
                    var permalink = itineraryVal.PricingOptions[0].DeeplinkUrl;
                    var time      = itineraryVal.PricingOptions[0].QuoteAgeInMinutes;

					// NEW FORMAT OF DATA
                    var data = {
                        agent     : agent,
                        price     : price,
                        time      : time,
                        permalink : permalink,
                        inbound    : {
                            time : {
                                departure : inDepartureTime,
                                arrival   : inArrivalTime
                            },
                            date : {
                                departure : inDepartureDate,
                                arrival   : inArrivalDate
                            },
                            station : {
                                origin      : inOrigin,
                                destination : inDestination
                            },
                            carriers : inCarriers
                        },
                        outbound  : {
                            time : {
                                departure : outDepartureTime,
                                arrival   : outArrivalTime
                            },
                            date : {
                                departure : outDepartureDate,
                                arrival   : outArrivalDate
                            },
                            station : {
                                origin      : outOrigin,
                                destination : outDestination
                            },
                            carriers : outCarriers
                        }
                    };
					
                    // will display the NEW FORMAT OF DATA
					console.log( data );
                });
            },
            error: function( error ){
                console.log( error );
            }
        });
    };

	app.displayData = function( data  )
	{
		console.log( data );
	};

    app.getObjects = function(obj, key, val) {
        var objects = [];
        for (var i in obj) {
            if (!obj.hasOwnProperty(i)) continue;
            if (typeof obj[i] == 'object') {
                objects = objects.concat(app.getObjects(obj[i], key, val));    
            } else 
            //if key matches and value matches or if key matches and value is not passed (eliminating the case where key matches but passed value does not)
            if (i == key && obj[i] == val || i == key && val == '') { //
                objects.push(obj);
            } else if (obj[i] == val && key == ''){
                //only add if the object is not already in the array
                if (objects.lastIndexOf(obj) == -1){
                    objects.push(obj);
                }
            }
        }
        return objects;
    };


    $(document).ready( app.init );

    return app;

})( window, document, jQuery );

</script>

PS我希望这将帮助您了解如何获取所需的数据。

于 2016-10-12T06:21:22.797 回答
0

我将展示一个如何解析的基本示例。采用以下示例 JSON。 http://api.androidhive.info/contacts/

如何获取联系人列表。

JSONObject jsonObj = new JSONObject("Your JSON String here");
JSONArray contacts = jsonObj.optJSONArray("contacts");

如何计算电话号码

//Get first contact


   JSONObject firstContact = contacts.optJSONObject(0);
   JSONObject phone = firstContact.optJSONObject("phone");
   String mobileNo = phone.optString("mobile");

同样,您可以将此技术应用于您的 JSON。

于 2016-10-12T06:59:01.463 回答