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解析方法中传递了什么?谢谢您,先生,我知道了…我为这个问题花了将近两天的时间…非常感谢您…不客气。祝您好运。