【java】属性别名:@JsonProperty和@JSONField的区别?【图文教程】

article/2025/9/23 18:28:23

平凡也就两个字: 懒和惰;
成功也就两个字: 苦和勤;
优秀也就两个字: 你和我。
跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
关注微信公众号【 IT特靠谱 】,每一篇文章都是心得总结,跟我学习你就是大牛!

 

属性别名:@JsonProperty和@JSONField的区别?【图文教程】

温馨提示:

      @JsonProperty@JSONField注解都是为了解决obj转json字符串的时候,将java bean的属性名替换成目标属性名。常见于调用第三方接口的时候属性名不一致的场景。

      两个注解的作用是相同的,只是来源不同,使用方式不同。下面将详解其异同!

 

1 @JsonProperty注解

      @JsonProperty注解来源于jackson包,搭配ObjectMapper().writeValueAsString(实体类)方法使用,将实体类转换成json字符串。搭配ObjectMapper().readValue(字符串)方法使用,将json字符串转换成实体类。

1.1 引入jackson依赖包

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>版本号</version>
</dependency>

1.2 测试json字符串与bean对象相互转换

实体类:User.java

import com.fasterxml.jackson.annotation.JsonProperty;@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {@JsonProperty("JsonPropertyName")private String name;private String sex;private Integer age;
}

测试方法:

@Test
public void testJsonProperty() throws IOException{//bean ---> jsonUser user=new User("zhangsan","man",22);System.out.println(new ObjectMapper().writeValueAsString(user));//json ---> beanString str="{\"sex\":\"man\",\"age\":22,\"JsonPropertyName\":\"zhangsan\"}";System.out.println(new ObjectMapper().readValue(str, User.class).toString());
}

测试结果:

{"sex":"man","age":22,"JsonPropertyName":"zhangsan"}
User [name=zhangsan, sex=man, age=22]

      可见,bean转成json字符串后,@JsonProperty注解的bean属性名已经替换成了指定属性名:JsonPropertyName;

                 json字符串转成bean后,@JsonProperty注解指定的属性名已经替换成了bean属性名:name;

 

2  @JSONField

      @JSONField是位于fastjson包里面,搭配JSON.toJSONString(实体类)方法使用,将实体类转换成json字符串。搭配JSON.parseObject(字符串,实体类.class)方法使用,将json字符串转换成实体类。

2.1 引入fastjson依赖包

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>版本号</version>
</dependency>

2.2 测试json字符串与bean对象相互转换

实体类:User.java

import com.alibaba.fastjson.annotation.JSONField;@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {@JSONField(name="JSONFieldName")private String name;private String sex;private Integer age;
}

测试方法:

@Test
public void testSONField(){//bean ---> jsonUser user=new User("zhangsan","man",22);System.out.println(JSON.toJSONString(user));//json ---> beanString str="{\"JSONFieldName\":\"zhangsan\",\"age\":22,\"sex\":\"man\"}";System.out.println(JSON.parseObject(str, User.class).toString());	
}

测试结果:

{"JSONFieldName":"zhangsan","age":22,"sex":"man"}
User [name=zhangsan, sex=man, age=22]

      可见,bean转成json字符串后,@JSONField注解的bean属性名已经替换成了指定属性名:JSONFieldName;

                 json字符串转成bean后,@JSONField注解指定的属性名已经替换成了bean属性名:name;

                测试结果同@JsonProperty。

 

      如果以上教程对您有帮助,为了不迷路,请关注一下吧~

 


http://chatgpt.dhexx.cn/article/jhkihtmE.shtml

相关文章

fastjson @JSONField format 不生效的原因

&#xff08;以下问题已在fastjson高版本优化<目前我用的是1.2.83版本>&#xff09; 在一次接手项目中发现&#xff0c;http接口返回json数据&#xff0c;Date类型的变量用JSONField format注解格式化不起作用。排查原因&#xff1a; 1&#xff09;查http接口序列化是不…

formdata和json

HTTP content-type Content-Type&#xff08;内容类型&#xff09;&#xff0c;一般是指网页中存在的 Content-Type&#xff0c;用于定义网络文件的类型和网页的编码&#xff0c;决定浏览器将以什么形式、什么编码读取这个文件&#xff0c;这就是经常看到一些 PHP 网页点击的结…

常用注解@JsonField、@JsonFormat、@DateTimeFormat区别

JsonFormat 该注解来源于jackson包中的注解&#xff0c;主要用来控制后端返回给前端的日期格式&#xff0c;通常用在返回给前端的实体类中。 案例如下&#xff1a; class User{private Integer id;JsonFormat(pattern”yyyy-MM-dd”,timezone”GMT8”)private Date birthday;…

Springboot中使用@JsonProperty和@JSONField

2个注解都是为了解决json字符串的某些属性名和JavaBean中的属性名匹配不上的问题。 例子&#xff0c;不使用注解的情况 Data public class Routine {private Integer TTS_voice;} PostMapping("/test8")public Routine test8(RequestBody Routine routine){retur…

@JSONField

1.引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version></dependency> 2.JSONField注解可以用在方法&#xff08;method&#xff09;&#xff0c;属性&#xff0…

@JsonField 不起作用

在Springboot中默认的JSON解析框架是jackson&#xff0c;引入alibaba的fastjson&#xff0c;使用JSONField 去接收带有native的json请求&#xff0c;实体类名需要做一个转换&#xff0c;但是接受json串的时候&#xff0c;用到JsonField不起作用&#xff0c;接受过来还是null。 …

一眼看清@JSONField注解使用与效果

JSONField是做什么用的 JSONField是fastjson的一个注解&#xff0c;在fastjson解析一个类为Json对象时&#xff0c;作用到类的每一个属性&#xff08;field&#xff09;上。 通过用JSONField注解一个类的属性&#xff0c;我们可以达到以下目标 指定field对应的key名称&#…

perclos

WierwiIIe驾驶模拟器上的实验结果证明&#xff0c;眼睛的闭合时间一定程度地反映疲劳&#xff0c; 如图 所示。 在此基础上&#xff0c; 卡内基梅隆研究所经过反复实验和论证&#xff0c;提出了度量疲劳/瞌睡的物理量 PERCLOS &#xff08;Percentage of EyeIid CIosure over t…

机器视觉毕业设计 深度学习驾驶人脸疲劳检测系统 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的…

Android studio开发 课设必备疲劳检测app

使用android内置摄像头&#xff0c;可以根据人的状态判定是否疲劳&#xff0c;界面设计较好&#xff0c;检测后还可以回到主界面 运行截图如下&#xff0c;获取源码有偿&#xff0c;拒绝白嫖党~

基于MATLAB的人眼开度疲劳检测识别

一、课题背景 目前&#xff0c;随着人们生活水平的提高&#xff0c;各国人民汽车保有量也越来越多&#xff0c;伴随而来的是交通事故也在不断增多。研究表明&#xff0c;疲劳驾驶是造成交通事故日益严重的重要原因。开展驾驶员疲劳检测和预警的研究工作&#xff0c;有着十分重…

Dlib+Opencv库实现疲劳检测

文章目录 1.关键点检测2.算法实现的核心点3.算法实现&#xff08;1&#xff09;人脸的关键点集合&#xff08;2&#xff09;加载人脸检测库和人脸关键点检测库&#xff08;3&#xff09;绘制人脸检测的框&#xff08;4&#xff09;对检测之后的人脸关键点坐标进行转换&#xff…

Python基于OpenCV的工作疲劳检测系统[源码&UI界面&部署教程]

1.图片演示 2.视频演示 [项目分享]Python基于OpenCV的实时疲劳检测[源码&#xff06;演示视频&#xff06;部署教程]_哔哩哔哩_bilibili 3.检测方法 1&#xff09;方法 与用于计算眨眼的传统图像处理方法不同&#xff0c;该方法通常涉及以下几种组合&#xff1a; 1、眼睛定…

Opencv之疲劳检测

项目要求 在一段视频中&#xff0c;通过检测人眨眼的次数来判断他的疲劳程度。 代码实现 1、导入工具包 from scipy.spatial import distance as dist import numpy as np import dlib import cv22、对脸上的部位进行定义 在关键点定位的官方文档中&#xff0c;提取68个关…

人脸识别-驾驶疲劳检测(1) 眨眼检测

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、背景 &#xff08;1&#xff09;环境搭建 &#xff08;2&#xff09;下载开源数据集 &#xff08;3&#xff09;视觉疲劳检测原理 二、代码示例 三、效…

人脸检测高级:疲劳检测

今天我们实现疲劳检测。 如果眼睛已经闭上了一段时间&#xff0c;我们会认为他们开始打瞌睡并发出警报来唤醒他们并引起他们的注意。我们测试一段视频来展示效果。同时代码中保留开启摄像头的的代码&#xff0c;取消注释即可使用。 使用 OpenCV 构建犯困检测器 要开始我们的实…

数字图像处理课程设计-疲劳检测系统

文章目录 数字图像处理课程设计-疲劳检测系统前言一、课程设计任务二、设计框图三、准备工作四、任务流程&#xff14;.&#xff11;视频预处理4.2图片分割 五、结果六、项目总结 数字图像处理课程设计-疲劳检测系统 前言 此系统基于MATLAB设计,核心思想是PERCLOS算法. 参考文…

MATLAB的疲劳检测系统

一、课题介绍 本设计针对现有逐帧眼睛定位方法计算量大&#xff0c;速度慢的缺点&#xff0c;提出一种用于疲劳驾驶实时监测的眼睛定位方法&#xff0c;该方法能够在保证眼睛定位准确性的同时&#xff0c;减少人脸定位的计算量&#xff0c;从而提高图像处理速度&#xff0c;实现…

毕业设计 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业…

利用opencv 做一个疲劳检测系统(2)

文章目录 杂谈实现步骤核心算法交互界面界面代码检测效果源代码 杂谈 最近发现视力下降严重&#xff0c; 可能跟我的过度用眼有关&#xff0c;于是想着能不能做一个检测用眼疲劳的&#xff0c;灵感来自特斯拉的疲劳检测系统。 效果如下&#xff1a; 实现步骤 实现核心算法制…