使用Gson在Android中@SerializedName注释的基本目的是什么?

2022-08-31 08:20:05

使用Gson在Android中进行注释的基本目的是什么?@SerializedName

给我一些不同的例子。我无法理解使用它的主要目的。


答案 1

Java 类示例,

public class Person {

    @SerializedName("name")
    private String personName;

    @SerializedName("bd")
    private String birthDate;

}

此类有两个字段,表示人员的姓名和出生日期。这些字段使用@SerializedName注释进行批注。此批注的参数(值)是当 和 对象时要使用的名称。例如,Java 字段 personName 在 JSON 中表示为 nameserialisingdeserialising

JSON 示例,

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

答案 2

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

通过指定,GSON 不会根据变量名称在 json 中查找,而只会使用指定的 。@SerializedName@SerializedName

当然,您可以告诉 proguard 不要对模型进行模糊处理,但是如果您想对模型进行模糊处理,则必须指定@SerializedName