改进-java.lang.IllegalStateException:预期为BEGIN_ARRAY,但为BEGIN_OBJECT

改进-java.lang.IllegalStateException:预期为BEGIN_ARRAY,但为BEGIN_OBJECT,第1张

概述我正在尝试解析自己的JSON,但得到JSONSyntaxException,这是我的JSON的外观:{"type":"success","value":[{"id":1,"title":"Title-1","name":{&q

我正在尝试解析自己的JSON,但得到JSONSyntaxException,这是我的JsON的外观:

{    "type":"success",    "value":[        {            "ID":1,            "Title":"Title - 1",         "name":{            "first":"First - 1",            "last":"Last - 1"         },            "hobbIEs":[                "Writing Code - 1",            "Listening Music - 1"            ]        },       .....    ]}

日志说:

E/app.retrofit_chucknorrIEs.MainActivity: ERROR: com.Google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 7 column 12 path $.value[0].name01-21 12:41:52.156 28936-28936/app.retrofit_chucknorrIEs W/System.err: retrofit.RetrofitError: com.Google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 7 column 12 path $.value[0].name

我在哪里做错了?我只是根据我的要求和类进行了一些小修改,其他所有内容几乎都与原始代码相同
Value.java:

import com.Google.gson.annotations.Expose;import com.Google.gson.annotations.Serializedname;import java.util.ArrayList;import java.util.List;public class Value {    @Serializedname("ID")    @Expose    private Integer ID;    @Serializedname("Title")    @Expose    private String Title;    @Serializedname("hobbIEs")    @Expose    private List<String> hobbIEs = new ArrayList<String>();    @Serializedname("name")    @Expose    private List<name> name = new ArrayList<name>();    public Integer getID() {        return ID;    }    public voID setID(Integer ID) {        this.ID = ID;    }    public List<name> getname() {        return name;    }    public voID setname(List<name> name) {        this.name = name;    }    public List<String> getHobbIEs() {        return hobbIEs;    }    public voID setHobbIEs(List<String> hobbIEs) {        this.hobbIEs = hobbIEs;    }    public String getTitle() {        return Title;    }    public voID setTitle(String Title) {        this.Title = Title;    }}

解决方法:

在您的Master.java类中,您的名字不是数组!

private List<name> name = new ArrayList<name>();

改为此并尝试:

 private name name;

实际上,通过查看异常日志可以知道这一点.

总结

以上是内存溢出为你收集整理的改进-java.lang.IllegalStateException:预期为BEGIN_ARRAY,但为BEGIN_OBJECT全部内容,希望文章能够帮你解决改进-java.lang.IllegalStateException:预期为BEGIN_ARRAY,但为BEGIN_OBJECT所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存