Answers:
Java类示例,
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
此类具有两个字段,分别代表一个人的姓名和出生日期。这些字段使用@SerializedName注释进行注释。该注释的参数(值)是serialising
和deserialising
对象时要使用的名称。例如,Java字段personName在JSON中表示为名称。
JSON示例,
{
"name":"chintan",
"bd":"01-01-1990"
}
Json
很有帮助
此处的答案已经很少了,但是我想补充一点,如果您习惯ProGuard
对代码进行混淆处理并且不在@SerializedName("name")
模型类中使用,那么您的GSON将无法工作。因为由于混淆,您的变量名可能已从更改为String name
,String a
从而导致GSON解析a
失败,因为GSON会寻找json的键,并且它将失败。
通过指定@SerializedName
,GSON将不会基于变量名查找json,而只会使用指定的@SerializedName
。
当然,您可以告诉proguard不要混淆模型,但是如果您希望混淆模型,则必须指定 @SerializedName
您可以通过在类的顶部指定@Keep来指示Proguard不要混淆您的数据类。这不会删除或混淆您的班级。如果字段名称类似于所使用的Json密钥,则无需为每个字段显式添加@SerializedName。