Retrofit + GSON 解析对象数组
Posted
技术标签:
【中文标题】Retrofit + GSON 解析对象数组【英文标题】:Retrofit + GSON parse an Array of objects 【发布时间】:2015-06-12 13:33:55 【问题描述】:我收到这个 jason 作为来自 WS 的响应:
[
[
"test0",
"test0"
],
[
"test1",
"test1"
],
[
"test2",
"test2"
],
[
"test3",
"test3"
],
[
"test4",
"test4"
],
[
"test5",
"test5"
]
]
请注意,没有名称-值字段,json 是一个字符串数组。 我尝试了几次解析响应。我尝试使用带有字符串列表的 pojo,但总是遇到相同的错误:
retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 应为 BEGIN_OBJECT 但在第 1 行第 2 列路径 $ 处为 BEGIN_ARRAY
用于改造回调的MyPOJO是下一个:
public class VotePollResults
private List<PartialResult> fields;
public List<PartialResult> getFields()
return fields;
public void setFields(List<PartialResult> fields)
this.fields = fields;
public class PartialResult
private String description;
private Integer votes;
public PartialResult(String description, Integer votes)
this.description = description;
this.votes = votes;
public String getDescription()
return description;
public Integer getVotes()
return votes;
我有一个带有自定义对象的 List
,即处理该 json 结构的对象。
【问题讨论】:
【参考方案1】:看起来您正在尝试解析 Object 而不是 Array。如果您响应此代码将起作用:
String[][] items = gson.fromJson(s, String[][].class);
【讨论】:
感谢您的回答。我编辑了问题以获取更多详细信息。你说我需要用 String[][] 作为字段来制作我的 POJO?【参考方案2】:我解决了这个问题。
我必须在改造时将其用作回调
Callback<List<List<String>>>
希望这对某人有所帮助...
【讨论】:
太好了,你已经解决了。我建议将您的答案标记为有效答案。 :)以上是关于Retrofit + GSON 解析对象数组的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Gson 和 Retrofit 将类似的 Json 对象转换为 Json 数组