GSON @SerializedName从json中的内部数组获取值

时间:2014-10-24 17:05:50

标签: java json gson

这是我的json

{
   name: "mark"
   subject: "maths"
   phone: 123-456-7890
   email_addresses: [ { email: "mark@example.com", is_primary: true } ]
}

我的java类就像这样

public class Student {
  @SerializedName("name") private String mName;
  @SerializedName("subject") private String mSubject;
  @SerializedName("phone") private String mPhone;
  private String mEmail;
}

有没有办法让@SerializedName用于mEmail,这样我就可以从email_addresses数组中的第一个对象获取电子邮件字段

2 个答案:

答案 0 :(得分:0)

不,没有。您可以创建自己的TypeAdapter或为电子邮件地址创建POJO类型,并Student声明类型为List的字段,而不是POJO类型。提供getter只能检索第一封电子邮件(如果有的话)。

答案 1 :(得分:0)

创建一个内在的静态对象并以这种方式引用它(适用于Android ...(不要忘记让你的对象实现Parcelable)

 @SerializedName("email_addresses") 
 private EmailAdresses mEmailAdresses;   

 public static class EmailAdresses {

        @SerializedName("email")
        private String mEmail;
        @SerializedName("is_primary")
        private boolean mIsPrimary;
}