美文网首页
Gson @SerializedName注解使用说明

Gson @SerializedName注解使用说明

作者: 程序员的隐秘角落 | 来源:发表于2020-07-07 15:54 被阅读0次

1. @SerializedName

默认情况下,我们假设Java模型类和JSON将完全相同的字段名称。但有时情况并非如此,某些名称也有所不同。现在我们必须将someNamejsonsomeOtherName中的映射映射到Java类中。这是@SerializedName注释有用的地方。

@SerializedName注释指示应将带注释的成员序列化为JSON,并将提供的名称值作为其字段名称。此批注将覆盖FieldNamingPolicy可能已使用GsonBuilder该类的任何内容,包括默认字段命名策略。

请注意,您在此批注中指定的值必须是有效的JSON字段名称。

1.1。注释属性

它接受两个属性:

value- 序列化或反序列化时字段的所需名称。

alternate- 反序列化时字段的替代名称。除了'value'属性之外,它还提供了更多可能的名称。如果有多个字段与一个属性匹配,Gson将使用最后处理的字段。

请记住,alternate具有多个名称的选项仅限于反序列化。在序列化中,它不会产生任何影响。

2.在序列化期间更改字段名称

让我们举一个Employee只有4个字段的类的例子。我们想创建JSON,其中"email"写为字段名称"emailId"。

public class Employee

{

    private Integer id;

    private String firstName;

    private String lastName;

    @SerializedName(value = "emailId", alternate = "emailAddress")

    private String email;

}

让我们序列化一个员工记录并查看JSON输出。

Employee emp = new Employee(1001, "Lokesh", "Gupta", "howtodoinjava@gmail.com"); Gson gson = new GsonBuilder().setPrettyPrinting().create(); System.out.println(gson.toJson(emp));

执行输出:

复制{"id":1001,"firstName":"Lokesh","lastName":"Gupta","emailId":"howtodoinjava@gmail.com"}

3.在反序列化期间更改字段名称

在将JSON反序列化到Java类期间映射不同字段名称的Java程序。

复制{  "id":1001,  "firstName":"Lokesh",  "lastName":"Gupta",  "email":"howtodoinjava@gmail.com",  "emailAddress":"admin@gmail.com"}

复制Main.javaString json ="{'id': 1001,"+"'firstName': 'Lokesh',"+"'lastName': 'Gupta',"+"'email': 'howtodoinjava@gmail.com',"+"'emailAddress': 'admin@gmail.com'}";        Gson gson =newGsonBuilder().setPrettyPrinting().create(); Employee emp = gson.fromJson(json, Employee.class); System.out.println(emp);

执行输出:

复制Employee [id=1001, firstName=Lokesh, lastName=Gupta, email=admin@gmail.com]

注意程序输出。我们有两个匹配的电子邮件领域即email和emailAddress。最后一次出现是for "emailAddress",所以它的值被填充到Employee对象中。

相关文章

  • Gson和Type

    Gson和Type SerializedName注解 SerializedName注解提供了两个属性,value单...

  • Gson @SerializedName注解使用说明

    1. @SerializedName 默认情况下,我们假设Java模型类和JSON将完全相同的字段名称。但有时情况...

  • Gson的使用进阶之注解

    Gson的五大注解 @SerializedName、@Expose、@Since、@Until、@JsonAdap...

  • GSON

    需要掌握的知识点 GSON的基本用法 属性重命名 @SerializedName 注解的使用 GSON使用泛型 利...

  • Gson SerializedName Gen注解插件了解一下?

    Gson SerializedName Gen GsonSerializedNameGen 是一个自动生成Gson...

  • Android探究之Gson@SerializedName

    @SerializedName注解的意义 当我们使用Gson解析Json数据时都会创建一个对应实体类,有时候Jso...

  • Gson @SerializedName 别名

    踩坑。 使用 Gson @SerializedName 取别名后,原来定义的变量名称将不会生效,如要两者同时生效使用:

  • @SerializedName注解

    在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。G...

  • 属性重命名

    @SerializedName 注解可以解决一些关键字命名的命名问题

  • Java @ 批注 整理集合

    1. @SerializedName 用作转化json字符串的快捷方式,首先需要引入Gson方法,我自己个认为呢,...

网友评论

      本文标题:Gson @SerializedName注解使用说明

      本文链接:https://www.haomeiwen.com/subject/wezaqktx.html