Android中Gson解析json数据使用@SerializedName注解

在Android开发中,当使用Gson库解析JSON数据时,可以利用@SerializedName注解来改变字段的序列化名称。例如,通过在User类的属性上添加@SerializedName("n"),使得在反序列化时,JSON对象中的'n'字段值会被映射到userName属性,反之在序列化为JSON字符串时,userName也会被转换为'n'。这种方式能保持类属性的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@SerializedName

  此注解作用在属性上,表明这个属性在序列化成Json的时候,需要将名字序列化成注解的value属性指定的值。

我们有一段json数据如下:

  
  
  1. {
  2. "id":"1"
  3. "n":"zhangsan"
  4. "p":"123456"
  5. "s":"0"
  6. }

这是一个user的数据包括id、用户名、密码、性别,如果正常些一个user类来解析的话是这样的:


  
  
  1. public class User{
  2. private String id;
  3. private String n;
  4. private String p;
  5. private String s;
  6. }

User类要这样写才能直接使用Gson直接解析出来,但是这样的话User类的属性命名就不太友好了,那我们要怎么做呢?Gson提供注解的方法来解决这个问题@SerializedName,使用方法如下:


  
  
  1. public class User{
  2.  
  3. private String id;
  4.  
  5. @SerializedName("n")
  6. private String userName;
  7.  
  8. @SerializedName("p")
  9. private String password;
  10.  
  11. @SerializedName("s")
  12. private String sex;
  13. }

这样再使用Gson解析的时候就会将n对应的值赋值到userName属性上,同样的如果我们要将User生成json字符串使用Gson生成的时候也会将userName的名字生成n。


github地址:https://github.com/google/gson

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值