- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要显示从 API 获得的键(货币)/值对,例如货币的简称及其值。不幸的是,当我尝试获取模型类的任何值时,它显示为空。我该如何解决这个问题?
我正在使用的API是https://api.exchangeratesapi.io/
我应该收到的数据看起来像这样
{
"base": "EUR",
"rates": {
"BGN": 1.9558,
"NZD": 1.7025,
"ILS": 4.0004,
"RUB": 73.3493,
"CAD": 1.5132,
"USD": 1.123,
"PHP": 58.722,
"CHF": 1.1378,
"ZAR": 15.9762,
"AUD": 1.6059,
"JPY": 123.25,
"TRY": 6.8837,
"HKD": 8.8135,
"MYR": 4.6781,
"THB": 35.464,
"HRK": 7.409,
"NOK": 9.8193,
"IDR": 16177.38,
"DKK": 7.4658,
"CZK": 25.732,
"HUF": 323.52,
"GBP": 0.8625,
"MXN": 21.5589,
"KRW": 1325.32,
"ISK": 137.0,
"SGD": 1.5305,
"BRL": 4.4405,
"PLN": 4.296,
"INR": 78.6075,
"RON": 4.7598,
"CNY": 7.6628,
"SEK": 10.8108
},
"date": "2019-05-10"
}
主要 Activity :
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.label);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.exchangeratesapi.io/")
.addConverterFactory(GsonConverterFactory.create())
.build();
Api api = retrofit.create(Api.class);
Call<Model.Rates> call = api.getRates();
call.enqueue(new Callback<Model.Rates>() {
@Override
public void onResponse(Call<Model.Rates> call, Response<Model.Rates> response) {
if (!response.isSuccessful()){
textView.setText(response.code());
return;
}
List<Model.Rates> ratesList = Collections.singletonList(response.body());
for (Model.Rates model : ratesList){
String content = "";
content += "First "+model.getCAD()+"\n\n\n";
textView.append(content);
}
}
@Override
public void onFailure(Call<Model.Rates> call, Throwable t) {
textView.setText(t.getMessage());
}
});
}
}
模型类:
public class Model {
private String date;
public Rates rates;
private String base;
private String currencyNationality;
private String currencyValue;
public Model(String currencyNationality, String currencyValue) {
this.currencyNationality = currencyNationality;
this.currencyValue = currencyValue;
}
public String getCurrencyNationality() {
return currencyNationality;
}
public void setCurrencyNationality(String currencyNationality) {
this.currencyNationality = currencyNationality;
}
public String getCurrencyValue() {
return currencyValue;
}
public void setCurrencyValue(String currencyValue) {
this.currencyValue = currencyValue;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Rates getRates() {
return rates;
}
public void setRates(Rates rates) {
this.rates = rates;
}
public String getBase() {
return base;
}
public void setBase(String base) {
this.base = base;
}
class Rates {
private String CHF;
private String HRK;
private String MXN;
private String ZAR;
private String INR;
private String THB;
private String CNY;
private String AUD;
private String ILS;
private String KRW;
private String JPY;
private String PLN;
private String GBP;
private String IDR;
private String HUF;
private String PHP;
private String TRY;
private String RUB;
private String HKD;
private String ISK;
private String DKK;
private String CAD;
private String USD;
private String MYR;
private String BGN;
private String NOK;
private String RON;
private String SGD;
private String CZK;
private String SEK;
private String NZD;
private String BRL;
public String getCHF() {
return CHF;
}
public void setCHF(String CHF) {
this.CHF = CHF;
}
public String getHRK() {
return HRK;
}
public void setHRK(String HRK) {
this.HRK = HRK;
}
public String getMXN() {
return MXN;
}
public void setMXN(String MXN) {
this.MXN = MXN;
}
public String getZAR() {
return ZAR;
}
public void setZAR(String ZAR) {
this.ZAR = ZAR;
}
public String getINR() {
return INR;
}
public void setINR(String INR) {
this.INR = INR;
}
public String getTHB() {
return THB;
}
public void setTHB(String THB) {
this.THB = THB;
}
public String getCNY() {
return CNY;
}
public void setCNY(String CNY) {
this.CNY = CNY;
}
public String getAUD() {
return AUD;
}
public void setAUD(String AUD) {
this.AUD = AUD;
}
public String getILS() {
return ILS;
}
public void setILS(String ILS) {
this.ILS = ILS;
}
public String getKRW() {
return KRW;
}
public void setKRW(String KRW) {
this.KRW = KRW;
}
public String getJPY() {
return JPY;
}
public void setJPY(String JPY) {
this.JPY = JPY;
}
public String getPLN() {
return PLN;
}
public void setPLN(String PLN) {
this.PLN = PLN;
}
public String getGBP() {
return GBP;
}
public void setGBP(String GBP) {
this.GBP = GBP;
}
public String getIDR() {
return IDR;
}
public void setIDR(String IDR) {
this.IDR = IDR;
}
public String getHUF() {
return HUF;
}
public void setHUF(String HUF) {
this.HUF = HUF;
}
public String getPHP() {
return PHP;
}
public void setPHP(String PHP) {
this.PHP = PHP;
}
public String getTRY() {
return TRY;
}
public void setTRY(String TRY) {
this.TRY = TRY;
}
public String getRUB() {
return RUB;
}
public void setRUB(String RUB) {
this.RUB = RUB;
}
public String getHKD() {
return HKD;
}
public void setHKD(String HKD) {
this.HKD = HKD;
}
public String getISK() {
return ISK;
}
public void setISK(String ISK) {
this.ISK = ISK;
}
public String getDKK() {
return DKK;
}
public void setDKK(String DKK) {
this.DKK = DKK;
}
public String getCAD() {
return CAD;
}
public void setCAD(String CAD) {
this.CAD = CAD;
}
public String getUSD() {
return USD;
}
public void setUSD(String USD) {
this.USD = USD;
}
public String getMYR() {
return MYR;
}
public void setMYR(String MYR) {
this.MYR = MYR;
}
public String getBGN() {
return BGN;
}
public void setBGN(String BGN) {
this.BGN = BGN;
}
public String getNOK() {
return NOK;
}
public void setNOK(String NOK) {
this.NOK = NOK;
}
public String getRON() {
return RON;
}
public void setRON(String RON) {
this.RON = RON;
}
public String getSGD() {
return SGD;
}
public void setSGD(String SGD) {
this.SGD = SGD;
}
public String getCZK() {
return CZK;
}
public void setCZK(String CZK) {
this.CZK = CZK;
}
public String getSEK() {
return SEK;
}
public void setSEK(String SEK) {
this.SEK = SEK;
}
public String getNZD() {
return NZD;
}
public void setNZD(String NZD) {
this.NZD = NZD;
}
public String getBRL() {
return BRL;
}
public void setBRL(String BRL) {
this.BRL = BRL;
}
List<Model> getCurrencyValuesList() {
List<Model> currencyValues = new ArrayList<>();
currencyValues.add(new Model("BGN", getAUD()));
currencyValues.add(new Model("NZD", getNZD()));
currencyValues.add(new Model("ILS", getILS()));
currencyValues.add(new Model("RUB", getRUB()));
currencyValues.add(new Model("CAD", getCAD()));
currencyValues.add(new Model("USD", getUSD()));
currencyValues.add(new Model("PHP", getPHP()));
currencyValues.add(new Model("CHF", getCHF()));
currencyValues.add(new Model("ZAR", getZAR()));
currencyValues.add(new Model("AUD", getAUD()));
currencyValues.add(new Model("JPY", getJPY()));
currencyValues.add(new Model("TRY", getTRY()));
currencyValues.add(new Model("HKD", getHKD()));
currencyValues.add(new Model("MYR", getMYR()));
currencyValues.add(new Model("THB", getTHB()));
currencyValues.add(new Model("HRK", getHRK()));
currencyValues.add(new Model("NOK", getNOK()));
currencyValues.add(new Model("IDR", getIDR()));
currencyValues.add(new Model("DKK", getDKK()));
currencyValues.add(new Model("CZK", getCZK()));
currencyValues.add(new Model("HUF", getHUF()));
currencyValues.add(new Model("GBP", getBGN()));
currencyValues.add(new Model("KRW", getKRW()));
currencyValues.add(new Model("ISK", getISK()));
currencyValues.add(new Model("SGD", getSGD()));
currencyValues.add(new Model("BRL", getBRL()));
currencyValues.add(new Model("PLN", getPLN()));
currencyValues.add(new Model("INR", getINR()));
currencyValues.add(new Model("RON", getRON()));
currencyValues.add(new Model("CNY", getCNY()));
currencyValues.add(new Model("SEK", getSEK()));
return currencyValues;
}
}
}
API 类:
public interface Api {
@GET("latest")
Call<Model.Rates> getRates();
}
最佳答案
你的映射有点错误,我建议你采用这种方式。我创建了名为“货币”的类,而不是您的模型类。您可以重命名它或使用相同的
public class Currency {
@SerializedName("base") private String base;
@SerializedName("rates") private Map<String, Double> rates;
public String getBase() {
return base;
}
public void setBase(String base) {
this.base = base;
}
public Map<String, Double> getRates() {
return rates;
}
public void setRates(Map<String, Double> rates) {
this.rates = rates;
}
}
关于java - 无法使用 Retrofit 从 API 检索键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56083893/
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!