Gson @SerializedName注解使用说明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gson @SerializedName注解使用说明相关的知识,希望对你有一定的参考价值。
参考技术A 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"。
让我们序列化一个员工记录并查看JSON输出。
执行输出:
复制 "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 @SerializedName注解使用说明的主要内容,如果未能解决你的问题,请参考以下文章
gson的 Expose注解和 SerializedName注解
Gson:@Expose 与 @SerializedName