我试图在Reformation/gson中解析下面的json响应,特别是这个json
{
"Coincheck":{
"BTC":[
"JPY"
]
},
"QuadrigaCX":{
"ETH":[
"CAD",
"BTC"
],
"BTC":[
"USD",
"CAD"
]
}
// ... more data
}
我尝试使用Map
public class ExchangeResp
{
Map<String, Map<String, List<String>>> exchanges;
public Map<String, Map<String, List<String>>> getExchanges()
{
return exchanges;
}
}
但我总是得到回应。正文()为空。我是否需要创建实现JsonDeserializer的自定义json去序列化器并传递给gson生成器?
添加以下三个模型类
public class Item {
@SerializedName("Coincheck")
@Expose
private Coincheck coincheck;
@SerializedName("QuadrigaCX")
@Expose
private QuadrigaCX quadrigaCX;
public Coincheck getCoincheck() {
return coincheck;
}
public void setCoincheck(Coincheck coincheck) {
this.coincheck = coincheck;
}
public QuadrigaCX getQuadrigaCX() {
return quadrigaCX;
}
public void setQuadrigaCX(QuadrigaCX quadrigaCX) {
this.quadrigaCX = quadrigaCX;
}
}
共同检查。Java语言
public class Coincheck {
@SerializedName("BTC")
@Expose
private List<String> bTC = null;
public List<String> getBTC() {
return bTC;
}
public void setBTC(List<String> bTC) {
this.bTC = bTC;
}
}
四边形
public class QuadrigaCX {
@SerializedName("ETH")
@Expose
private List<String> eTH = null;
@SerializedName("BTC")
@Expose
private List<String> bTC = null;
public List<String> getETH() {
return eTH;
}
public void setETH(List<String> eTH) {
this.eTH = eTH;
}
public List<String> getBTC() {
return bTC;
}
public void setBTC(List<String> bTC) {
this.bTC = bTC;
}
}
使用retrfit的网络调用应该是
call1.enqueue(new Callback<Item>() {
@Override
public void onResponse(Call<Item> call, Response<Item> response) {
}
@Override
public void onFailure(Call<Item> call, Throwable t) {
}
});
使用您的响应类作为
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class Reposne {
@SerializedName("Coincheck")
private Coincheck coincheck;
@SerializedName("QuadrigaCX")
private QuadrigaCX quadrigaCX;
public Coincheck getCoincheck() {
return coincheck;
}
public void setCoincheck(Coincheck coincheck) {
this.coincheck = coincheck;
}
public QuadrigaCX getQuadrigaCX() {
return quadrigaCX;
}
public void setQuadrigaCX(QuadrigaCX quadrigaCX) {
this.quadrigaCX = quadrigaCX;
}
class Coincheck {
@SerializedName("BTC")
private List<String> btc;
public List<String> getBtc() {
return btc;
}
public void setBtc(List<String> btc) {
this.btc = btc;
}
}
class QuadrigaCX {
@SerializedName("ETH")
private List<String> eth;
@SerializedName("BTC")
private List<String> btc;
public List<String> getEth() {
return eth;
}
public void setEth(List<String> eth) {
this.eth = eth;
}
public List<String> getBtc() {
return btc;
}
public void setBtc(List<String> btc) {
this.btc = btc;
}
}
}
我想在Android Studio中使用Gson库解析以下JSON数据。但是数据是通用的...不知道数据中有什么键(对象)... 在学校物体下——有1103号物体。 在这个物体下,我们有shoolname,shortname,students,同样在students下,有id,比如2201,2202。。。这些物体是动态的,不知道会有什么反应。。 所以问题是如何解析这个json字符串在Android
我想使用此服务:http://fast-gorge.herokuapp.com/contacts我设置Retrofit解析如下: 其中,我的日期格式为: 然而,当我运行该应用程序时,我进入了failure(reformerror error)方法,并显示消息:reformation。改装错误:com。谷歌。格森。JsonSyntaxException:2014-07-31T07:49:23.000
但是我的DetailModel是一个基类,我的user.class和organization.class是DetailModel的子类。但是我不知道如何解析对我的用户或组织模型的响应。
问题内容: 我目前正在开发一个Android项目,该项目需要我调用网络服务,该服务将返回一个json文件。我一直在使用GSON库来解析所有json文件并获取一个JSON对象。在我遇到关键字段是动态的json数据之前,它一直运行良好。此文件的示例如下: 我能够基于键ID“ 0”获得计数,但是我不确定如何利用该值来获取其他键对象(键ID 1-5),该键对象包含以下数据:我需要。如果有人在这件事上能帮助
问题内容: 我知道,Java没有预处理器,因此Java中有些东西或多或少是不可能的。 真的 没有 办法在循环中用动态名称填充这些数组吗?我想要类似的东西: 代替 还是有可以使用的古怪技巧? 问题答案: 我会那样做: 如果要使用该方法:
问题内容: 因此,我使用GSON来从API解析JSON,并被困在如何解析数据中的动态字段上。 这是查询返回的JSON数据的示例: 我当前处理单个静态值的方式是使用一个类: 然后我可以简单地使用GSON来解析它: 我知道这对子数据有效,因为我可以查询并获得单个条目并非常轻松地解析该条目,但是为数组中每个值给出的随机整数值呢?(即30655845和2868874) 有什么帮助吗? 问题答案: 根据GS