Java 如何在android中解析嵌套JSON数组?

Java 如何在android中解析嵌套JSON数组?,java,android,Java,Android,我有一个数组,如下所示,我想解析它。 我需要显示航班详细信息和票价详细信息,但我无法从中获取任何值。我为“数据”以及基于数据对象的航班和票价详细信息创建了JSONobject。我如何解决这个问题 { "tag":"Flight Search Results", "success":"1", "xml_filename":"dom_one_20150604172653.xml", "data":[ {"depart_from_location":"Bangalore", "depart_from_

我有一个数组,如下所示,我想解析它。 我需要显示
航班详细信息
票价详细信息
,但我无法从中获取任何值。我为“数据”以及基于数据对象的航班和票价详细信息创建了JSONobject。我如何解决这个问题

{
"tag":"Flight Search Results",
"success":"1",
"xml_filename":"dom_one_20150604172653.xml",
"data":[ {"depart_from_location":"Bangalore",
"depart_from_location_code":"BLR",
"depart_to_location":"Calicut",
"depart_to_location_code":"CCJ",
       "departure_details":[{
        "id":"0001",
         "flight_details":[
           {
            "airline_name":"Air India",
           ------------------------
         }],
         "fare_details":{
         "base_fare":"7301",
         "airport_tax":"5365",
         "service_tax":"46",
         "transaction_charge":"0",
         "total":"12962",
         "total_amount":"12962.00"
         }
         },
         {
          "id":"0002"
           "flight_details":[
           {
            "airline_name":"Air India",
           ------------------------
         }],
         "fare_details":{
         "base_fare":"7301",
         "airport_tax":"5365",
         "service_tax":"46",
         "transaction_charge":"0",
         "total":"12962",
         "total_amount":"12962.00"
         }
         }
         ]
}
我的代码

   private void json_parser(JSONArray jarray){
    try {

        flight_list=new ArrayList<Flight>();
        for (int i = 0; i < jarray.length(); i++) {
        JSONObject object = jarray.getJSONObject(i);
        JSONObject flight_details = object.getJSONObject("flight_details");
            Toast.makeText(getApplicationContext(),   flight_details.getString("airline_name").toString(), Toast.LENGTH_SHORT).show();


   flight_list.add(new Flight(object.getString("depart_from_location_code"),       object.getString("depart_to_location_code")));

        }
private void json_解析器(JSONArray-jarray){
试一试{
航班列表=新的ArrayList();
for(int i=0;i
flight\u details是一个JSONArray,而不是一个JSONObject。您还没有给出完整的代码,但提取过程大致如下所示

JSONObject object = jarray.getJSONObject(i);
// flight details is a JSONArray
JSONArray flight_details = object.getJSONArray("flight_details");
for (int j = 0; j < flight_details.length(); j++) {
    JSONObject object = flight_details.getJSONObject(i);
    Log.d("Airline Name: ", object.getString("airline_name"));
}
// fare details is a JSONObject
JSONObject fare_details= object.getJSONObject("fare_details");
Log.d("Base fare", fare_details.getString("base_fare"));
Log.d("Airport tax", fare_details.getString("airport_tax"));
....
JSONObject object=jarray.getJSONObject(i);
//航班详情是JSONArray
JSONArray flight_details=object.getJSONArray(“flight_details”);
对于(int j=0;j
使用前请仔细阅读,并且您必须根据自己的反应进行一些更改。[Android JSON解析使用截击]

正确的代码:

  private void json_parser(JSONArray jarray){
    try {

        flight_list=new ArrayList<Flight>();
      boarding_points=new ArrayList<Seat_Search>();
        for (int i = 0; i < jarray.length(); i++) {
            JSONObject object = jarray.getJSONObject(i);
            JSONArray array = object.getJSONArray("departure_details");
            for (int j = 0; j < array.length(); j++) {
                JSONObject departure_details = array.getJSONObject(j);
                JSONArray flarray = departure_details.getJSONArray("flight_details");
                for(int k = 0;k< flarray.length(); k++){
                    JSONObject flight_details = flarray.getJSONObject(k);
                    Toast.makeText(getApplicationContext(), flight_details.getString("airline_name"), Toast.LENGTH_SHORT).show();

                }

            }

        }
      } catch (Exception e) {
        // TODO: handle exception
        Log.e("@json_parser", e.getMessage());
     }
    }
private void json_解析器(JSONArray-jarray){
试一试{
航班列表=新的ArrayList();
登机点=新的ArrayList();
for(int i=0;i
在谷歌上搜索。有关演示教程,请让我们知道……您在这方面面临什么问题?您能否发布此“出发日期=15-06-2015&返回日期=&no\u成人=2&no\u儿童=2&no\u婴儿=1&客舱类型=E”的URL这是我们正在使用的url。当我尝试为flight_详细信息创建对象时,应用程序停止强制尝试,但得到如下错误:@json_parser﹕ 航班详细信息没有价值您已经解析了
出发详细信息
对吗?您在json\u解析方法中传递了什么?谢谢您,先生,我知道了…我为这个问题花了将近两天的时间…非常感谢您…不客气。祝您好运。