我有一个从模型类中获取“key”字符串的循环,我想将这些值转换为数组String,但我不知道如何才能实现它。基本上,我的应用程序从api获取当前货币交换,我使用hashmap从中获取它们,我只想将这些值存储为数组。
Java类
public void retrofit() {
Call call = api.getRatesByGivenCurrency(BASE_URL);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (!response.isSuccessful()) {
Toast.makeText(exchange_currency.this, response.code(), Toast.LENGTH_LONG).show();
}
list = Collections.singletonList(response.body());
for (Model model : list) {
Iterator> entries = model.getRates().entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
keyString = (String) entry.getKey();
valueDouble = (Double) entry.getValue();
}
}
}
@Override
public void onFailure(Call call, Throwable t) {
Toast.makeText(exchange_currency.this, t.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
模型类
public class Model {
@SerializedName("base")
private String base;
@SerializedName("rates")
private Map rates;
public void setRates(Map rates) {
this.rates = rates;
}
public void setBase(String base) {
this.base = base;
}
public String getBase() {
return base;
}
public Map getRates() {
return rates;
}
class Rates {
@SerializedName("BGN")
private Double bGN;
@SerializedName("NZD")
private Double nZD;
等等...
Api界面
public interface Api {
@GET("latest")
Call getRatesByGivenCurrency(@Query("base") String base);