【问题标题】:Error while parsing JSON response解析 JSON 响应时出错
【发布时间】:2015-07-29 05:37:56
【问题描述】:

当我使用 Retrofit 解析 JSON 响应时,我收到以下错误:

应为 BEGIN_ARRAY,但为 BEGIN_OBJECT

我的 JSON 响应是:

{"Hints":"Within past week?,Within past month?,Within past year?,2000s?,1990s?,1980s?,1970s?,1960s?,Natural disaster?,Political?,Sports-related?,Movies-related?,Music-related?,Technology/Science?,Headline News?,International News?,Regional/Local News?"}

和模型类:

public class User {

    String Hints;

    public String getHints() {
        return Hints;
    }

    public void setHints(String Hints) {
        this.Hints = Hints;
    }

    public User() {
    }

    public User(String Hints) {
        this.Hints = Hints;
    }
}

界面是:

public interface UserService {
    @GET("/getCategoryHints/3")
    void getUser(Callback<List<User>> callback);
}

请告诉我此错误的可能原因。

【问题讨论】:

  • 错误明确指出它应该以数组[ 开头,但它以对象{ 开头。我不知道为什么会这样。但猜测错误类型。
  • 你有List&lt;User&gt;你的json不是对象数组。
  • 我已突出显示错误消息,从代码块中删除了额外的换行符。我还从标题中删除了客户名称,因为由于标签的存在,它不是必需的。

标签: java android json retrofit


【解决方案1】:

使用 GSON 试试这个,

public class User {

@Expose
private String Hints;

/**
* 
* @return
* The Hints
*/
public String getHints() {
return Hints;
}

/**
* 
* @param Hints
* The Hints
*/
public void setHints(String Hints) {
this.Hints = Hints;
}

} 

并删除 List&lt;User&gt;,因为您的响应不是 JSON 数组

public interface UserService {
    @GET("/getCategoryHints/3")
    void getUser(Callback<User> callback);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多