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

使用Gson解析json成对象时默认的是将json里对应字段的值解析到java对象里对应字段的属性里面。然后我们经常会遇到我们自己定义的java对象里的属性名跟json里的字段名是不一样的,这种情况怎么办呢,这时我们就可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。

下面说说具体使用方法:
  我们有一段json数据如下:

{

  1. "id":"1"
        "n":"kyoya"
        "p":"123456"
        "s":"0"
    }

定义一个User类解析json

public class User{
         private String id;
         private String n;
         private String p;
         private String s;
     }

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

public class User{
 
    private String id;
 
    @SerializedName("n")
    private String userName;
 
    @SerializedName("p")
    private String password;
 
    @SerializedName("s")
    private String sex;
}

优化后的User写法

这样再使用Gson解析的时候就会将n对应的值赋值到userName属性上,同样的如果我们要将User生成json字符串使用Gson生成的时候也会将userName的名字生成n。这样就解决了java对象里属性名跟json里字段名不匹配的情况了。

@serializedname注解的意思相关推荐

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

    @SerializedName 此注解作用在属性上,表明这个属性在序列化成Json的时候,需要将名字序列化成注解的value属性指定的值. 我们有一段json数据如下: { "id" ...

  2. Kotlin 4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName

    一起来学Kotlin:概念:4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName 这 ...

  3. Json转换利器Gson-Gson注解和GsonBuilder

    1实体的一部分属性导出为Json 2实体类会根据版本的升级而修改 3对输出的json默认排好格式 import java.util.Date; import com.google.gson.annot ...

  4. 常用注解,依赖,常用类,插件和其它(自用)

    目录 参考 下面是自己写的笔记 java注解大全参考: 实用的注解: @Controller 和 @RestController @RequestMapper @PathVariable 和 @Req ...

  5. Json转换利器Gson之实例二-Gson注解和GsonBuilder

    有时候我们不需要把实体的所有属性都导出,只想把一部分属性导出为Json. 有时候我们的实体类会随着版本的升级而修改. 有时候我们想对输出的json默认排好格式. ... ... 请看下面的例子吧: 实 ...

  6. Android中的网络(字节跳动)

    文章目录 RESTful API 对REST的解释 资源与URI 什么是URI HTTP URL的组成 Http 接口 JSON Http资源 XML JSON Android中对JSON的处理 方法 ...

  7. 从一个Bug开始,重新认识一个强大的 Gson

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:Mafly, 地址:www.cnblogs.com/mafly/p/gson.html 从 ...

  8. java gson使用_Java 中 Gson的使用

    JSON 是一种文本形式的数据交换格式,它比XML更轻量.比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java.Gson.Jackson.Fast ...

  9. Android Studio 第四十九期 - Sqlite数据库四种写法

    最近在看撸撸代码,他自己创了一种,网上有三种,分别是OpenDroid,greenDao,sugar,Sqlite原生写法,感觉都差不多,个人使用最优的是greenDao,下面开始介绍: 1.Open ...

最新文章

  1. SQL Server 2000安装时不出现安装界面,进程中存在解决
  2. Exchange服务器系列课程之四--管理Exchange收件人
  3. 皮一皮:原来骑骆驼要求这么高。。
  4. solr查询特殊字符的处理
  5. VTK:Filtering之AppendFilter
  6. 硬件:电脑DNS出现错误对应的解决方案
  7. (兔子繁殖问题)有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问32个月过后的兔子总数为多少?...
  8. ddd 访问权限_基于DDD的微服务设计和开发实战
  9. 天气预报如何得获得?
  10. 批处理查找html,批处理(bat)实现全盘搜索指定文件获取其完整路径方法大全,bat大全分享...
  11. Spark Conf配置用法
  12. R_circlize包_和弦图(一)
  13. 扩展MemberShip的使用:
  14. 搜索关键词采集YouTube视频字幕
  15. MindSpore21天实战营(2):基于BERT实现中文新闻分类实战
  16. 同洲电子转型之殇:新瓶装老酒的定位迷航
  17. vue项目,引入插件element ui 样式不生效
  18. 计算机如何放置桌面图标,电脑桌面图标怎么随意放置(电脑桌面归纳小窗口)...
  19. Linux内核配置(9)
  20. OS X系统 手势终极设置方法+BetterTouchTool详细设置中文翻译

热门文章

  1. GoLang之标准库strings包
  2. SpringCloud使用Consul作为配置中心
  3. Oracle 数据库闪回
  4. 03 | 数组与链表:存储设计的基石有哪些?
  5. R9 7900X3D参数 R9 7900X3D性能怎么样 锐龙R97900X3D相当于什么水平
  6. Python之Pandas学习
  7. 西北民族大学计算机科学与技术排名,2019西北民族大学专业排名
  8. 进制转换的思路分析与计算器的实现
  9. 设图像为 f=[1 5 25 10 20 20] 谷峰法 二值化 图像分割
  10. python语音合成实现原理_python腾讯语音合成实现过程解析