当前位置: 首页 > 知识库问答 >
问题:

GSON应为BEGIN\u对象,但为BEGIN\u数组

郭彬郁
2023-03-14

我有下面的JSON和模型类,如何使用GSOn反序列化这个JSON,下面的代码片段会出现类似“预期的BEGIN\u对象,但是BEGIN\u数组”的异常。如何为下面的JSON数据生成模型CALS

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"
}

共有3个答案

韦志新
2023-03-14

创建名为ReferralHandler的类:

public class ReferralHandler implements Serializable {

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

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

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

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
}

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

ReferralHandler referralsObject = gson.fromJson(response.toString(), ReferralHandler.class);
ArrayList<Referral> referrals = referralsObject.getReferrals();
东方华荣
2023-03-14

试试这个...希望这能奏效。

private Referral[] referrals;
高博涉
2023-03-14

尝试更改此

private List<Referral> referrals;

private ArrayList<Referral> referrals;

还可以使引用可序列化

 类似资料:
  • 这是我的JSON数据: 这是我的反序列化代码: 我在PageSecurity上收到错误。这是我的PageResponce类。我想我可能处理信息是正确的。我只使用过JsonObject。我想知道如何获取“page”: 0,然后如何获取“线程” } 我的页面类 公共类页面{ }

  • 我有这样的json。在我的情况下,当我单击一个产品时,我会将该产品交给detailproduct。在那之后,我在我的详细信息屏幕中有了回收器。我想按产品数组获取回收商项目,该数组的id等于单击的产品id。 我想了解产品阵列。我的api方法正在返回调用

  • 我从以下改装服务中获得了一个json结果: 我在改装后变得像bellow一样: 但是告诉我: 下面是我的模型:

  • 我正在尝试使用《纽约时报》API,并使用Observable进行改装。但我在尝试使用数据时遇到了这个错误。 有人能帮我看看哪里错了吗? 以下是我的ApiServices界面: 这是我的ApiStreams课 这就是我在我的主要活动中要做的。现在我只想在文本视图中显示每个标题的列表。。。 [编辑]TopStories和NewsItem有我的两个模型 上部结构: 新闻项目: 以下是JSON的外观: J

  • 预期BEGIN_OBJECT但BEGIN_ARRAY使用GSON解析JSON。我收到错误,这是由于Gson Json实现Json Format的类定义需要使用GSON解析而发生的 用于使用gson进行分析的类: 使用gson解析json的代码:需要解析 "值":"19","值":"19","值":"77","值":"4" 内部数据数组[]。

  • 我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动