@SerializedName可以更改字段名,还能提供备用名属性:alternate,使用如下:
- @SerializedName(value = "email_address",alternate = {"emailAddress","email"})
-
当上面的三个属性(email_address、email、emailAddress)中出现任意一个时都能进行解析。
注:当多种情况同时出时,以最后一个出现的值为准。
- public class User{
-
- private String id;
-
- @SerializedName("n")
- private String userName;
-
- @SerializedName("p")
- private String password;
-
- @SerializedName("s")
- private String sex;
- }
-
注:使用Gson解析json成对象时默认的是将json里对应字段的值解析到java对象里对应字段的属性里面,所以说java对象里的属性名跟json里的字段名是要相同的,这时候既可以使用@SerializedName来解决命名不友好的问题了