如何使用数组改造解析 JSON 对象 [英] How to parse JSON object with array retrofit

查看:45
本文介绍了如何使用数组改造解析 JSON 对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用android改造获取带有数组的JSON对象.我正在使用改造作为 Web API.

how to fetch JSON object with array using android retrofit. I am using retrofit as web API.

我的 JSON 响应如下:-

My JSON Response is as follows:-

{
    "PnrNumber": "12345665",
    "Status": "SUCCESS",
    "ResponseCode": "200",
    "TrainNumber": "1111",
    "TrainName": "ABC",
    "JourneyClass": "SL",
    "ChatPrepared": "NO",
    "From": "TEST1",
    "To": "TEST2",
    "JourneyDate": "2019-10-01",
    "Passangers": [
        {
            "Passenger": "Passenger 1",
            "BookingStatus": "CNF/S4/18",
            "CurrentStatus": "CNF/S4/18"
        },
        {
            "Passenger": "Passenger 2",
            "BookingStatus": "CNF/S4/19",
            "CurrentStatus": "CNF/S4/19"
        },
        {
            "Passenger": "Passenger 3",
            "BookingStatus": "CNF/S4/24",
            "CurrentStatus": "CNF/S4/24"
        }
    ]
}

推荐答案

创建您的 POJO 模型类从json响应

Create your POJO Model class from the json response

Passanger.java

public class Passanger {

@SerializedName("Passenger")
@Expose
private String passenger;
@SerializedName("BookingStatus")
@Expose
private String bookingStatus;
@SerializedName("CurrentStatus")
@Expose
private String currentStatus;

//implement getter,setter

}

TrainData.java

public class TrainData {

@SerializedName("PnrNumber")
@Expose
private String pnrNumber;
@SerializedName("Status")
@Expose
private String status;
@SerializedName("ResponseCode")
@Expose
private String responseCode;
@SerializedName("TrainNumber")
@Expose
private String trainNumber;
@SerializedName("TrainName")
@Expose
private String trainName;
@SerializedName("JourneyClass")
@Expose
private String journeyClass;
@SerializedName("ChatPrepared")
@Expose
private String chatPrepared;
@SerializedName("From")
@Expose
private String from;
@SerializedName("To")
@Expose
private String to;
@SerializedName("JourneyDate")
@Expose
private String journeyDate;
@SerializedName("Passangers")
@Expose
private List<Passanger> passangers = null;

//implement getter, setter

}

改造api接口

public interface Api {

    @GET("/your_api_endpoint")
    Call<TrainData> retriveTrainData();

}

提出请求

Call<TrainData> call = getRetrofitInstance().create(Api.class).retriveTrainData();
            call.enqueue(new Callback<TrainData>() {
                @Override
                public void onResponse(Call<TrainData> call, Response<TrainData> response) {
                    if(response.isSuccessful()) {
                         response.body().getPassangers();
                        //...
                    }
                }

                @Override
                public void onFailure(Call<TrainData> call, Throwable t) {
                   //..
                }
            });

网上有很多资源,更多详情可以阅读以下文章

There are plenty of resources online, for more details you can read the following articles

vogella

androidhive

android.jlelse

这篇关于如何使用数组改造解析 JSON 对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆