我有一个JSON文件,如下所示:
{
"prices": [
[
1635631832100,
61607.43864571635
],
[
1635632085704,
61575.780699431976
]
],
"market_caps": [
[
1635631398809,
1164158508809.9917
],
[
1635631832100,
1164158508809.9917
],
[
1635632085704,
1164158508809.9917
]
],
"total_volumes": [
[
1635632420811,
30767786519.758457
],
[
1635632594220,
30875566056.458145
],
[
1635632959263,
30967148014.50128
],
[
1635633219013,
30718683632.270718
]
]
}
我的对象类是这样的:
public class HistoricalPrices {
private List<List<Double>> prices;
private List<List<Double>> market_caps;
private List<List<Double>> total_volumes;
public List<List<Double>> getPrices() {
return prices;
}
public List<List<Double>> getMarket_caps() {
return market_caps;
}
public List<List<Double>> getTotal_volumes() {
return total_volumes;
}
}
我不知道我在这里做错了什么,因为当我试图反序列化JSON文件时,我的数组字段是空的。双精度值的“no-name”数组让我很困惑,但似乎我的对象类应该在这里工作。该文件来自使用GSON工厂的一个改型调用。
编辑:
改装接口:
@GET("coins/{id}/market_chart/range")
Call<HistoricalPrices> getHistoricalPrices(
@Path("id") String id, @Query("vs_currency")String currency, @Query("from") double startDate, @Query("to") double endDate);
改装电话:
private void populateHistoricalPrices() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.coingecko.com/api/v3/")
.addConverterFactory(GsonConverterFactory.create())
.build();
CoinGeckoApi coinGeckoApi = retrofit.create(CoinGeckoApi.class);
Call<HistoricalPrices> call = coinGeckoApi.getHistoricalPrices("bitcoin", "usd", 1635597419, 1635633419);
call.enqueue(new Callback<HistoricalPrices>() {
@Override
public void onResponse(Call<HistoricalPrices> call, Response<HistoricalPrices> response) {
if(!response.isSuccessful()){
//need to display response error
return;
}
TextView textView = ((Activity) context).findViewById(R.id.mainTextView);
textView.append(response.body().toString());
HistoricalPrices historicalPrices = response.body();
}
@Override
public void onFailure(Call<HistoricalPrices> call, Throwable t) {
}
});
}
1条答案
按热度按时间rt4zxlrg1#
此处必须使用String而不是Long
您在此处的查询中使用了double而不是string作为时间戳(unix),因此请使用如下所示的string
第一个
请查看此屏幕截图