在使用GSon的android中@SerializedName注释的基本用途是什么?

任何人都可以告诉我什么是使用GSON@SerializedName注释的基本目的

给我一个不同的例子。 我已经检查了不同的网站,但我不明白什么是使用它的主要目的。

Java类的例子,

public class Person { @SerializedName("name") private String personName; @SerializedName("bd") private String birthDate; } 

这个class有两个领域,代表人的姓名和出生date。 这些字段使用@SerializedName注释进行注释。 这个注解的参数(值)是serialisingdeserialising对象时要使用的名称。 例如,Java字段personName在JSON中表示为名称

JSON示例,

 { "name":"chintan", "bd":"01-01-1990" } 

这里已经有很less的答案了,但是我想补充一点,如果你正在使用ProGuard来模糊你的代码并且不在你的模型类中使用@SerializedName("name") ,那么你的GSON将不起作用。 因为由于混淆,您的variables名称可能已经从String name更改为String a导致GSONparsing,因为GSON将查找密钥a到json它将失败。

通过指定@SerializedName ,GSON将不会查找基于variables名称的JSON,只会使用指定的@SerializedName

当然,你可以告诉proguard不要模糊你的模型,但是如果你想模型混淆,那么你必须指定@SerializedName