我有下面的JSON和模型类,如何使用GSOn反序列化这个JSON我得到了一个异常,就像下面的snippet.how的“Expected BEGIN_OBJECT but was BEGIN_ARRAY”,以形成下面的JSON数据的Model calss
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"
}发布于 2014-11-26 18:40:24
尝试更改此设置
private List<Referral> referrals;至
private ArrayList<Referral> referrals;还要使Referrals类成为Serializable类
发布于 2014-11-26 18:42:33
试试这个..。希望这能行得通。
private Referral[] referrals;发布于 2014-11-26 18:50:57
创建一个名为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();https://stackoverflow.com/questions/27146556
复制相似问题