我正在尝试解析JSON(http://economia.awesomeapi.com.br/json/all)响应,我不知道为什么当我使用Gson()。fromJson()时没有填充我的对象。
GetCoinsBalanceJson方法
{"status":1,"description":"Integration code is valid"}
CoinJsonWrapper类
private void getCoinsBalanceJson() {
String httpURL = "http://economia.awesomeapi.com.br/json/all";
URL myUrl;
StringBuilder coinData = new StringBuilder();
CoinJsonWrapper coinJsonWrapper = new CoinJsonWrapper();
try {
myUrl = new URL(httpURL);
HttpURLConnection conn = (HttpURLConnection) myUrl.openConnection();
conn.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String inputLine;
while ((inputLine = br.readLine()) != null) {
coinData.append(inputLine);
}
Gson g = new Gson();
//CoinJsonWrapper[] enums = g.fromJson(coinData, CoinJsonWrapper[].class);
coinJsonWrapper = g.fromJson(coinData.toString(), CoinJsonWrapper.class); // This Object is not been Populated :(
} catch (Exception e) {
System.out.println("Exception is " + e.getMessage());
}
}
我不知道为什么我的对象-> coinJsonWrapper没有使用os Json Response值填充。 有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:0)
您没有正确定义模型类,它们应如下所示:
public class Coin {
@SerializedName("code")
private String code;
@SerializedName("codein")
private String codein;
@SerializedName("name")
private String name;
@SerializedName("high")
private Float high;
@SerializedName("low")
private Float low;
@SerializedName("ask")
private Float ask;
@SerializedName("timestamp")
private Long timestamp;
@SerializedName("create_date")
private String create_date;
public final String get_code() {
return this.code;
}
public final String get_codein() {
return this.codein;
}
public final String get_name() {
return this.code;
}
public final Float get_high() {
return this.high;
}
public final Float get_low() {
return this.low;
}
public final Float get_ask() {
return this.ask;
}
public final Long get_timestamp() {
return this.timestamp;
}
public final String get_create_date() {
return this.create_date;
}
}
和
public class CoinsWrapper {
@SerializedName("USDT")
private Coin usdt;
@SerializedName("USD")
private Coin usd;
@SerializedName("CAD")
private Coin cad;
@SerializedName("EUR")
private Coin eur;
@SerializedName("GBP")
private Coin gbp;
@SerializedName("ARS")
private Coin ars;
@SerializedName("BTC")
private Coin btc;
public final Coin get_usdt() {
return this.usdt;
}
public final Coin get_usd() {
return this.usd;
}
public final Coin get_cad() {
return this.cad;
}
public final Coin get_eur() {
return this.eur;
}
public final Coin get_gbp() {
return this.gbp;
}
public final Coin get_ars() {
return this.ars;
}
public final Coin get_btc() {
return this.btc;
}
}
在您的方法中,getCoinsBalanceJson:
coinJsonWrapper = g.fromJson(coinData.toString(), CoinsWrapper.class);