@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来解决命名不友好的问题了