如何在Retrofit中将常量大小列表转换为POJO

时间:2018-07-15 13:55:06

标签: java json retrofit2

我正在尝试从coinmarketcap.com获取加密货币的历史数据。 这是数据https://graphs2.coinmarketcap.com/currencies/bitcoin/1530280740000/1630367140000/的示例 如您所见,每个元素都是一个列表列表,其中第二个列表始终仅包含两个元素:时间戳和数据(数量或价格)。 目前我有这个:

public class History {

    private List<List<Number>> price_usd;

   // getters and setters
}

在翻新界面中:

@GET("{slug}/{start}/{end}")
Call<History> getHistoryData(@Path("slug") String slug, long start, long end);

但是我必须访问元素为history.getPrice_usd()。get(0).longValue()和history.getPrice_usd()。get(1).floatValue()

我想要这样的东西:

public class History {

    private List<HistoryData> price_usd;

   // getters and setters
}

public class HistoryData {

    private long timestamp;
    private float price;

   // getters and setters
}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您是否了解 GSON 插件。自动创建模型类的最佳方法。

只需遵循简单的步骤:

  1. 安装插件GSON。
  2. 右键单击模型类,然后查看附件图像。只需复制并粘贴结果,然后按ok,它将自动创建模型。

enter image description here

public class Test { private List<List<Long>> market_cap_by_available_supply; private List<List<Long>> price_btc; private List<List<Long>> price_usd; private List<List<Long>> volume_usd;

public List<List<Long>> getMarket_cap_by_available_supply() {
    return market_cap_by_available_supply;
}

public void setMarket_cap_by_available_supply(List<List<Long>> market_cap_by_available_supply) {
    this.market_cap_by_available_supply = market_cap_by_available_supply;
}

public List<List<Long>> getPrice_btc() {
    return price_btc;
}

public void setPrice_btc(List<List<Long>> price_btc) {
    this.price_btc = price_btc;
}

public List<List<Long>> getPrice_usd() {
    return price_usd;
}

public void setPrice_usd(List<List<Long>> price_usd) {
    this.price_usd = price_usd;
}

public List<List<Long>> getVolume_usd() {
    return volume_usd;
}

public void setVolume_usd(List<List<Long>> volume_usd) {
    this.volume_usd = volume_usd;
}
}

为您的结果提供示例类。希望对您有帮助。