当前位置: 首页 > news >正文

解决JSON格式数据大小写问题,以及@JsonProperty 和@JSONField序列化的区别

1、@JsonProperty注解方式

@JsonProperty注解是annotation包下的一个注解,可以通过value属性定义注解修饰的属性名称,如果你用的是@JsonProperty注解,那么你千万不要用JSONObject.toJSONString(实体)去转json,可能很多人在这里就蒙蔽了,为什么网上复制过来的转换不了,实际上很多文章只是复制粘贴,根本没有实际执行过,JSONObject.toJSONString(实体)实际上是fastjson包里面的方法,他不会处理@JsonProperty上设置的“别名”。正确的写法是:ObjectMapper().writeValueAsString(实体类)。

2、@JSONField注解方式

另外一种方法就是用fastjson包提供的@JSONField(当然这个注解还有很多其他功能,比如格式化时间等,这里不做阐述)。如果用了此注解的属性(或者set方法),那就需要用JSONObject.toJSONString(实体)(或者JSONObject.toJSONString(实体))。

示例

public class SerializeTest {@JSONField(name = "gender")private String sex = "男";@JsonProperty(value = "name")private String userName = "张三";public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public SerializeTest() {}public static void main(String[] args) throws Exception{String string = new ObjectMapper().writeValueAsString(new SerializeTest());System.out.println(string);String jsonString = JSONObject.toJSONString(new SerializeTest());System.out.println(jsonString);}
}
-----------------------------------------------
-----------------------------------------------
运行结果:
JsonProperty序列化:{"sex":"男","name":"张三"}
JSONField序列化:{"gender":"男","userName":"张三"}

注意:spring框架的@RequestBody默认使用fasterxml中的converter方法将body中的json转换为对象 所以应该使用@JsonProperty注解。

相关文章:

  • TVS管与ESD保护二极管详解:原理、区别与应用选型
  • 广东广州一家IPO资产重组疑点重重,信息披露真实性存疑
  • 通过高斯分布概率密度函数寻找到数据中的异常点
  • TLS/SSL 弱密码套件中危漏洞修复
  • Security 权限控制的基本流程
  • 基于 Python 的 ROS2 应用开发全解析
  • 【扩散模型(十三)】Break-A-Scene 可控生成,原理与代码详解(中)Cross Attn Loss 代码篇
  • tcp和udp的数据传输过程以及区别
  • neakyThrows 是 Lombok 库中的一个注解
  • LeetCode Hot100 刷题笔记(10)—— ACM格式输入输出练习
  • 2025年文件加密软件的作用及其在现代社会中的重要性
  • 类的加载过程
  • Policy Gradient思想、REINFORCE算法,以及贪吃蛇小游戏(一)
  • SDK游戏盾如何接入?复杂吗?
  • RCL谐振电压增益曲线
  • 【树形dp题解】dfs的巧妙应用
  • SpringCloud企业级常用框架整合--下篇
  • 在 Linux 中判断当前网络类型与网卡类型的实用方法(内外网判断 + 网卡分类)
  • Function Calling是什么?
  • springboot + vue3项目部署到服务器上面(宝塔Linux面板)
  • 网站建设验收/怎么学seo基础
  • 如何办理医药网站icp备安的前置审批/最基本的网站设计
  • 山西网站制作公司哪家好/谷歌搜索引擎免费入口
  • 免费制作自己的网站长/外贸平台排行榜前十名
  • 黄骗免费网站/买链接网站
  • 网站及单位网站建设情况/百度一下图片识别