【问题标题】:Retrofit + GSON parse an Array of objectsRetrofit + GSON 解析对象数组
【发布时间】: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 结构的对象。

【问题讨论】:

    标签: android parsing gson retrofit pojo


    【解决方案1】:

    看起来您正在尝试解析 Object 而不是 Array。如果您响应此代码将起作用:

    String[][] items = gson.fromJson(s, String[][].class);
    

    【讨论】:

    • 感谢您的回答。我编辑了问题以获取更多详细信息。你说我需要用 String[][] 作为字段来制作我的 POJO?
    【解决方案2】:

    我解决了这个问题。

    我必须在改造时将其用作回调

    Callback<List<List<String>>>
    

    希望这对某人有所帮助...

    【讨论】:

    • 太好了,你已经解决了。我建议将您的答案标记为有效答案。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多