首页 > 解决方案 > 在我的情况下,如何从 api 获取准确的数据?

问题描述

我有特定结构的 api,我需要接收特定于用户的数据。

在 Rates pojo 中,我有 eUR 和 gBP 字段,当然,如果我想获得准确的货币汇率数据,我需要设置其中一个。正如您在我的代码的最后几行中看到的那样:Rates rate = data.getValue().getRates(); 在这种情况下,我没有得到费率数据,但如果我设置 getEUR 例如我有我需要的确切信息。那么在我的情况下,如何设置代码甚至重建代码以在我看来有机会在微调器中选择货币?

public class Currency {

@SerializedName("base")
@Expose
private String base;
@SerializedName("last_update")
@Expose
private String lastUpdate;
@SerializedName("rates")
@Expose
private Rates rates;
@SerializedName("status")
@Expose
private int status;
@SerializedName("target")
@Expose
private String target;

public String getBase() {
    return base;
}

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

public String getLastUpdate() {
    return lastUpdate;
}

public void setLastUpdate(String lastUpdate) {
    this.lastUpdate = lastUpdate;
}

public Rates getRates() {
    return rates;
}

public void setRates(Rates rates) {
    this.rates = rates;
}

public int getStatus() {
    return status;
}

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

public String getTarget() {
    return target;
}

public void setTarget(String target) {
    this.target = target;
}



public class Rates {

@SerializedName("EUR")
@Expose
private double eUR;
@SerializedName("GBP")
@Expose
private double gBP;

public double getEUR() {
    return eUR;
}

public void setEUR(double eUR) {
    this.eUR = eUR;
}

public double getGBP() {
    return gBP;
}

public void setGBP(double gBP) {
    this.gBP = gBP;
}



 Rates rate = data.getValue().getRates();
            Log.d(TAG, String.valueOf(rate));

JSON:

{
"base": "USD",
"last_update": "2018-12-10T15:10:58.253Z",
"rates": {
    "EUR": 0.8769574627,
    "GBP": 0.7914459201
    },
"status": 200,
"target": "EUR,GBP"
}

标签: androidretrofit

解决方案


Parce Json 使用Map而不是 Rate 对象对对象进行评分。使用map.keyset()方法获取微调器值


推荐阅读