【发布时间】:2018-03-06 11:50:58
【问题描述】:
我正在使用一个提供以下响应的 API。 (为简单起见,我将 Data 中的对象数量减少到 2 个)。
{
"Response": "Success",
"Message": "Coin list succesfully returned!",
"BaseImageUrl": "https://www.cryptocompare.com",
"BaseLinkUrl": "https://www.cryptocompare.com",
"Data": {
"42": {
"Id": "4321",
"Url": "/coins/42/overview",
"ImageUrl": "/media/19984/42.png",
"Name": "42",
"CoinName": "42 Coin",
"FullName": "42 Coin (42)",
"Algorithm": "Scrypt",
"ProofType": "PoW",
"FullyPremined": "0",
"TotalCoinSupply": "42",
"PreMinedValue": "N/A",
"TotalCoinsFreeFloat": "N/A",
"SortOrder": "34"
},
"365": {
"Id": "33639",
"Url": "/coins/365/overview",
"ImageUrl": "/media/352070/365.png",
"Name": "365",
"CoinName": "365Coin",
"FullName": "365Coin (365)",
"Algorithm": "X11",
"ProofType": "PoW/PoS",
"FullyPremined": "0",
"TotalCoinSupply": "2300000000",
"PreMinedValue": "N/A",
"TotalCoinsFreeFloat": "N/A",
"SortOrder": "916"
}
},
"Type": 100
}
我想将 Data 中的所有对象放在一个数组中,以便我可以将它们传递给我的 RecyclerView 的适配器。
我使用 Retrofit2 和 RxJava2 进行网络操作。
这是我现在改造建造者的代码:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
我还生成了 POJO 类 Coin 和 Data 使用:http://www.jsonschema2pojo.org/
我已经编辑了 Data 类,使其包含一个 Coin 数组而不是单个对象:
public class Data {
@SerializedName("Coin")
@Expose
private Coin[] coins;
public Coin[] getCoin() {
return coins;
}
public void setCoins(Coin[] coins){}
}
如何将 Data 中的所有对象添加到 Coin 数组中? 我是否需要创建自定义转换器,如果需要,我该如何实现?
提前致谢!
【问题讨论】:
标签: android arrays json object