我正在尝试解析自己的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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)