首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GSON预期为BEGIN_OBJECT,但实际为BEGIN_ARRAY

GSON预期为BEGIN_OBJECT,但实际为BEGIN_ARRAY
EN

Stack Overflow用户
提问于 2014-11-26 18:20:01
回答 3查看 415关注 0票数 0

我有下面的JSON和模型类,如何使用GSOn反序列化这个JSON我得到了一个异常,就像下面的snippet.how的“Expected BEGIN_OBJECT but was BEGIN_ARRAY”,以形成下面的JSON数据的Model calss

代码语言:javascript
运行
复制
Gson gson = new Gson();
Referrals referrals = gson.fromJson(response.toString(),Referrals.class);

public class Referrals {

private List<Referral> referrals;

}

public class Referral implements Serializable{

private String referral_id;
private String notes;
private String attachment;
private String patient_consent;
private String date_of_referral;
private String is_read;
private String type;
 }

{
  "referrals": [
    {
      "referral_id": "2",
      "notes": "test issue",
      "attachment": "test.jpg",
      "patient_consent": "Yes",
      "date_of_referral": "2014-11-26 15:14:45",
      "is_read": "0",
      "type": "sender"
    },
    {
      "referral_id": "1",
      "notes": "ok",
      "attachment": null,
      "patient_consent": "Yes",
      "date_of_referral": "2014-11-26 11:52:43",
      "is_read": "0",
      "type": "sender"
    }
  ],
  "response": "1"
}
EN

回答 3

Stack Overflow用户

发布于 2014-11-26 18:40:24

尝试更改此设置

代码语言:javascript
运行
复制
private List<Referral> referrals;

代码语言:javascript
运行
复制
private ArrayList<Referral> referrals;

还要使Referrals类成为Serializable

票数 0
EN

Stack Overflow用户

发布于 2014-11-26 18:42:33

试试这个..。希望这能行得通。

代码语言:javascript
运行
复制
private Referral[] referrals;
票数 0
EN

Stack Overflow用户

发布于 2014-11-26 18:50:57

创建一个名为ReferralHandler的类:

代码语言:javascript
运行
复制
public class ReferralHandler implements Serializable {

@SerializedName("referrals")
private ArrayList<Referral> referrals = new ArrayList<Referral>();

public ArrayList<Referral> getReferrals() {
    return referrals;
}

然后创建一个名为Referral的类:

代码语言:javascript
运行
复制
public class Referral implements Serializable {

@SerializedName("referral_id")
private String referral_id;
@SerializedName("notes")
private String notes;
@SerializedName("attachment")
private String attachment;
@SerializedName("patient_consent")
private String patient_consent;
@SerializedName("date_of_referral")
private String date_of_referral;
@SerializedName("is_read")
private String is_read;
@SerializedName("type")
private String type;

// setters and getters
}

最后,要进行解析,您必须编写:

代码语言:javascript
运行
复制
ReferralHandler referralsObject = gson.fromJson(response.toString(), ReferralHandler.class);
ArrayList<Referral> referrals = referralsObject.getReferrals();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27146556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档