浅谈@SerializedName

简介: 本文讲述@SerializedName相关的内容。
本文首发于稀土掘金。该平台的作者 逐光而行 也是本人。

背景

做项目的时候,看到原项目里用了@SerializedName注解(为了解决我的项目照搬就飘红的问题,还花了点时间找到了对应的com.google.code.gson:gson版本,并且通过修改build.gradle文件导入了依赖)。

虽然我知道serialized是序列化的意思,但其实我之前没有仔细想过什么是序列化和反序列化,仅仅知道有这么个概念。再加上我看到注解后的名字和没注解前的一样,这让我更疑惑了。为什么要注解呢?为什么需要序列化呢?于是就开始了学习新知识之路。

image.png
图:某项目原代码片段

序列化与反序列化————Java与Json之间的相互转换

  • 序列化:Java对象——>JSON
  • 反序列化:JSON->Java对象

什么是JSON?

JSON:JavaScript Object Notation

它的格式长这样:

{
  "id": "123456",
  "introduce": "lalalalala",
  "sex": "1",
  "username": "hahahaa",
}

而对应的Java对象长这样(先假设两者对应名称相同,详细的后文再解释)

public class User{

private String id;
public String getId() {
    return id;
}

private String introduce;
public String getIntroduce() {
    return introduce;
}

private int sex;
public int getSex() {
    return sex;
}

private String username;
public String getUsername() {
    return username;
}
}

关于@SerializedName

@SerializedName有两个参数,其中第二个是可选,表示别名,

如,在下图所示的代码生成的JSON文件中,头像那一行可能会显示"haha",这就是别名的作用,对JSON有效。
image.png
实际上就是同一个Java字符串可以映射成不同的JSON字符串表示(一对多)

为什么要序列化?

我目前的理解是:因为我本次的任务主要是界面设计,但是最终需要调用接口和后端交互,接口返回的信息都是JSON格式的。

相关文章
|
Oracle Java 关系型数据库
Oracle jdk 的国内下载镜像
Oracle jdk 的国内下载镜像
62150 0
|
6月前
|
人工智能 运维 前端开发
Claude Code 30k+ star官方插件,小白也能写专业级代码
Superpowers是Claude Code官方插件,由核心开发者Jesse打造,上线3个月获3万star。它集成brainstorming、TDD、系统化调试等专业开发流程,让AI写代码更规范高效。开源免费,安装简单,实测显著提升开发质量与效率,值得开发者尝试。
13210 5
Mac删除APP后台活动全攻略(副标题:彻底清理Mac后台,提升运行速度)Mac删除APP后台活动全攻略
本文详细介绍如何清理Mac后台活动,提升系统运行速度与电池续航。通过活动监视器、系统设置登录项管理及终端命令三种方法,帮助用户彻底删除APP后台进程,实现Mac性能优化,适合新手和进阶用户参考操作。
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
647 4
|
XML 安全 API
REST 和 SOAP API 有什么区别?
【8月更文挑战第31天】
1292 0
|
安全 Java 数据库
Spring Boot 3 + JWT + Security 联手打造安全帝国:一篇文章让你掌握未来!
`Spring Security`已经成为`java`后台权限校验的第一选择.今天就通过读代码的方式带大家深入了解一下Security,本文主要是基于开源项目[spring-boot-3-jwt-security](https://github.com/ali-bouali/spring-boot-3-jwt-security)来讲解Spring Security + JWT(Json Web Token).实现用户鉴权,以及权限校验. 所有代码基于`jdk17+`构建.现在让我们开始吧!
4209 1
 Spring Boot 3 + JWT + Security 联手打造安全帝国:一篇文章让你掌握未来!