Невозможно получить объект JSON с сервера с помощью Rx Java и Retrofit2 - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь получить объект JSON для сервера с помощью Retrofit и Rx Java, но он показывает ошибку. Я не могу получить значение bookprice из ответа.

Ниже мой JSON ответ от сервера:

{
"data": [
    {
        "id": "1",
        "onlineprice": "100.00",
        "bookprice": "100.00"
    }
],
"status": true,
"code": 200
}  

Класс POJO выдан:

PaymentModel.class

public class PaymentModel {

@SerializedName("data")
@Expose
private List<Payment> data = null;
@SerializedName("status")
@Expose
private Boolean status;
@SerializedName("code")
@Expose
private Integer code;

public PaymentModel(){

}

public List<Payment> getData() {
    return data;
}

public void setData(List<Payment> data) {
    this.data = data;
}

public Boolean getStatus() {
    return status;
}

public void setStatus(Boolean status) {
    this.status = status;
}

public Integer getCode() {
    return code;
}

public void setCode(Integer code) {
    this.code = code;
}
}

Оплата . java

public class Payment {

@SerializedName("id")
@Expose
private String id;
@SerializedName("onlineprice")
@Expose
private String onlineprice;
@SerializedName("bookprice")
@Expose
private String bookprice;

public Payment(){
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getOnlineprice() {
    return onlineprice;
}

public void setOnlineprice(String onlineprice) {
    this.onlineprice = onlineprice;
}

public String getBookprice() {
    return bookprice;
}

public void setBookprice(String bookprice) {
    this.bookprice = bookprice;
}
}

ApiService

public interface ApiService {

      @GET("get_payment")
      Observable<PaymentModel> getPayment();
}

MainActivity. java

List<Payment> videoPaymentList =  new ArrayList<>();

 Retrofit retrofit = RetrofitClient.getInstance();
    ApiService apiService = retrofit.create(ApiService.class);

    apiService.getPayment().subscribeOn(Schedulers.io())
                           .observeOn(AndroidSchedulers.mainThread())
                           .subscribe(new Observer<PaymentModel>() {
                               @Override
                               public void onSubscribe(Disposable d) {

                               }

                               @Override
                               public void onNext(PaymentModel paymentModel) {

                                    videoPaymentList = paymentModel.getData();

                               }

                               @Override
                               public void onError(Throwable e) {

                                   Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
                               }

                               @Override
                               public void onComplete() {

                               }
                           });
}

Кто-нибудь, дайте мне знать, что я делаю не так. Любая помощь будет принята с благодарностью.

СПАСИБО

...