Retrofit响应在Android Studio中返回null

问题描述 投票:0回答:1

我想从coinbase api获取实时数据。我正在使用Retrofit进行API调用,当我尝试返回显示数据时收到了空响应

来自api的json响应JSON

{"data":{"base":"BTC","currency":"USD","amount":"9510.915"}}

返回数据的改造类RETROFIT

 myC2C = RetrofitClient.getInstance("https://api.coinbase.com/v2/prices/").create(IMyC2C.class);
       
 Call<DataList> call = myC2C.getPrice("USD");

  call.enqueue(new Callback<DataList>() {
            @Override
   public void onResponse(Call<DataList> call, Response<DataList> response) {

                if (!response.isSuccessful()){
                    usd_price.setText("Code: " + response.code());
                    return;
                }
                
                 Log.d("resedatasync", new Gson().toJson(response.body().getDatas()));
                
            }

            @Override
            public void onFailure(Call<DataList> call, Throwable t) {
                usd_price.setText(t.getMessage());
            }

调用get方法并解析货币类型的端点ENDPOINT

@GET("spot")
    Call<DataList> getPrice(@Query("currency") String currency);

这里的Java模型类** JAVA CLASS

import java.util.List;

public class DataList {
    private Datas Datas;

    public Datas getDatas() {
        return Datas;
    }

    public void setDatas(Datas datas) {
        this.Datas = datas;
    }
}
package com.example.c2c.Model;

public class Datas {

    private String base;
    private String currency;
    private float amount;

    public String getBase() {
        return base;
    }

    public void setBase(String base) {
        this.base = base;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public float getAmount() {
        return amount;
    }

    public void setAmount(float amount) {
        this.amount = amount;
    }

}

**

java android json api retrofit2
1个回答
0
投票

您的DataList应该如下定义:

public class DataList {
    private List<Data> data;

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

    public void setData(List<Data> data) {
        this.data = data;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.