@JsonIgnore的使用及相关问题的解决

目录

1 前言

2 对比及其使用方法

3 遇到的相关问题及解决方法


1 前言

在我们编写的后端项目中,有时候可能需要将某个实体类以JSON格式传送给前端,但是其中可能有部分内容我们并不想传送,这时候我们选择将这部分内容变成Null,这确实是个解决办法。但是我们如果使用@JsonIgnore,这就可以更优雅的解决这个问题。

2 对比及其使用方法

我们以传送用户实体类User为例,其组成如下。现在,我们想将除密码外的内容返回给前端。

public class User {private Integer id;//主键IDprivate String username;//用户名private String password;//密码private String nickname;//昵称private String email;//邮箱//其它
}

如果不使用@JsonIgnore,解决方法有很多种。既可以从mapper层入手,不查询出password,也可以在返回前对User进行处理,将password置为空。除此之外,还有很多方法,这里就将User置空,如下:

public class UserController {public Result<User> userInfo() {User user = userService.findByUserName(username);user.setPassword("");//其它代码...}//其它代码...
}

用Postman测试如下:

如果使用 @JsonIgnore,那么只需要在实体类中的password上加上@JsonIgnore即可,如下:

public class User {@JsonIgnore//转为JSON格式的数据时忽略密码private String password;//密码//其它...
}

用Postman测试就会发现,后端在转为JSON格式的数据时忽略密码,如下:

好像都是一行代码,但是各有侧重吧,一个是忽略,一个是置空。不过为了主打优雅和专业,个人推荐使用@JsonIgnore。

3 遇到的相关问题及解决方法

虽然@JsonIgnore只有一行,但是在使用过程中,我也遇到了一些问题,现将其写在这里,希望能提供一些帮助。

 在我使用的时候,用的是第二个(我当时用的时候,它提示在第一个,结果就用了它),然后就和没用一样。注意:是com.fasterxml.jackson.annotation中的,这样才能产生效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今日前端十个知识点——CSS篇(二)

1、伪元素和伪类 伪元素&#xff1a;在内容元素的前后插入额外的元素或样式&#xff0c;但是这些元素实际上并不在文档中生成&#xff0c;只在外部显示可见&#xff0c;不会在文档的源代码中找到它们 伪类&#xff1a;将特殊的效果添加到特定选择器上&#xff0c;它是已有元素…

Flutter 点击空白处关闭软键盘,点击非TextField 关闭软键盘的方法

1&#xff1a;点击空白处(非控件上)关闭软键盘。 此方法有个问题&#xff0c;就是点击非空白区域&#xff0c;不会关闭软键盘&#xff0c;比如点击旁边的其他按钮&#xff0c;则软键盘还在。只适合点击空白处关闭软键盘 在 main.dart 入口 build 中增加 builder: (context, ch…

一文速通Python添加、修改和删除字典元素

添加、修改和删除字典元素是 Python 中使用字典时常见的操作。字典是一种无序、可变的数据结构&#xff0c;用于存储键值对。在 Python 中&#xff0c;对字典元素进行添加、修改和删除操作可以帮助我们动态地管理数据&#xff0c;方便地根据需求对字典进行更新和维护。 一、添…

蓝桥杯练习-简单2

程序猿圈子里正在流行一种很新的简写方法:对于一个字符串&#xff0c;只保留首尾字符&#xff0c;将首尾字符之间的所有字符用这部分的长度代替。例如internation-alization 简写成i18n&#xff0c;Kubernetes (注意连字符不是字符电的一部分)简写成 K8s, Langiao 简写成 L5o 等…

图文解析交流慢充原理和握手协议以及OBC工作原理

1.接口定义 2.硬件连接原理 2.obc工作原理 OBC里面包括单片机1和单片机2&#xff0c;DSP。 有的厂家方案只有一个单片机&#xff0c;CC/CP部分直接用DSP实现。交流桩的ARM控制K1、K2&#xff0c;S1。单片机1控制K3。单片机2控制S2。DSP控制K4。BMS控制PDU里面的K5&#x…

地理空间分析6——地理空间数据挖掘与Python

目录 写在开头1. 聚类分析1.1 聚类分析基本概念K均值算法步骤1.2 Python中的地理空间聚类分析1.3 应用场景举例2. 分类问题2.1 将地理数据分为不同类别的方法2.1.1 地理数据分类概述2.1.2 监督学习与无监督学习2.1.3 特征工程2.2 Python中实现地理空间分类问题2.3 应用场景举例…

使用Opencv-python库读取图像、本地视频和摄像头实时数据

使用Opencv-python库读取图像、本地视频和摄像头实时数据 Python中使用OpenCV读取图像、本地视频和摄像头数据很简单&#xff0c; 首先需要安装Python&#xff0c;然后安装Opencv-python库 pip install opencv-python然后在PyCharm或者VScode等IDE中输入对应的Python代码 一…

Maven讲解

介绍 Maven是一个流行的构建工具和项目管理工具&#xff0c;它主要用于Java项目的构建、依赖管理和项目报告生成。Maven通过提供一致的项目结构、自动化的构建过程和强大的依赖管理&#xff0c;简化了项目的开发和维护过程。 下面是一些Maven的主要特点和用途&#xff1a; 项…

Static Nested Class 和 Inner Class的不同

Nested Class一般是C的说法&#xff0c;Inner Class一般是Java的说法&#xff0c;指的是同一意思。 内部类分为静态内部类和非静态内部类。 静态内部类中可以包含静态成员&#xff0c;非静态内部类中不可以包含静态成员。 静态内部类中不能引用外部类中的实例成员。非静态内部类…

【AngularJs】已改变ui-sref的state,但是href的url未改变

<!--数组&#xff1a;var routes [{route:go-update-a,id:1},{route:go-update-b,id:2}];--><a ng-click"vm.changeRoute(item)">改变跳转路径</a> <a ui-sref"{{item.route}}({id: item.id})">去修改</a><!--vm.change…

Transformer and Pretrain Language Models3-6

Pretrain Language Models预训练语言模型 content&#xff1a; language modeling&#xff08;语言模型知识&#xff09; pre-trained langue models(PLMs&#xff09;&#xff08;预训练的模型整体的一个分类&#xff09; fine-tuning approaches GPT and BERT&#xff08;…

【阻塞队列】阻塞队列的模拟实现及在生产者和消费者模型上的应用

文章目录 &#x1f4c4;前言一. 阻塞队列初了解&#x1f346;1. 什么是阻塞队列&#xff1f;&#x1f345;2. 为什么使用阻塞队列&#xff1f;&#x1f966;3. Java标准库中阻塞队列的实现 二. 阻塞队列的模拟实现&#x1f35a;1. 实现普通队列&#x1f365;2. 实现队列的阻塞功…

码云公钥免密配置

码云公钥免密配置 ssh-keygen -t rsa &#xff08;三个回车&#xff09;cat ~/.ssh/id_rsa.pub &#xff08;查看公钥然后放到码云即可&#xff09;推送代码到码云步骤 ssh免密登录

立创EDA学习:设计收尾工作

布线整理 ShiftM&#xff0c;关闭铺铜显示 调整结束后再使用快捷键”ShiftM“打开铺铜 过孔 在空白区域加上一些GND过孔&#xff0c;连接顶层与底层的铺铜。放置好”过孔“后&#xff0c;隐藏铺铜&#xff0c;观察刚才放置的过孔有没有妨碍到其他器件 调整铺铜 先打开铺铜区&…

javaMailSender 发送邮件,基于Spring Boot

目录 引入依赖 配置文件配置 具体代码 MultipartFile 转 File 工具类 引入依赖 <!--邮件--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--日…

《Vue3 基础知识》 Vue2+ElementUI 自动转 Vue3+ElementPlus(GoGoCode)

前言 GoGoCode 一个基于 AST 的 JavaScript/Typescript/HTML 代码转换工具。 AST abstract syntax code 抽象语法树。 实现 第一步&#xff1a;安装 GoGoCode 插件 全局安装最新的 gogocode-cli 即可 npm i gogocode-cli -g查看版本 gogocode-cli -V相关插件说明 插件描述…

【多态】10分钟大白话讲解Java中的多态

1.多态的概念 多态(polymorphism)本来是生物学里的概念&#xff0c;表示地球上的生物在形态和状态方面的多样性。 而在java的面向对象中&#xff0c;多态通俗点说就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生不同的状态。也就是说…

多路IO复用模型——epoll模型

文章目录 一、epoll模型是什么&#xff1f;二、epoll模型工作流程三、epoll模型优缺点总结 一、epoll模型是什么&#xff1f; epoll模型是整合了select和poll优势&#xff0c;并且优化了已知的问题。 使用红黑树作为监听集合&#xff08;监听树&#xff09; 通过epoll_create创…

先进计算产业促湖南数字经济规模突破1.7万亿元

中新网湖南新闻1月26日电 (于冬阳 周沁怡)“截至2023年底&#xff0c;集群汇聚了中电长城、飞腾、麒麟等1400余家企业&#xff0c;产值达1800亿元。”1月26日&#xff0c;国家新一代自主安全计算系统产业集年度工作推进会在长沙举行&#xff0c;国家新一代自主安全计算系统产业…

Segment Routing MPLS概述

段路由SR&#xff08;Segment Routing&#xff09;是基于源路由理念而设计的在网络上转发数据包的一种协议。Segment Routing MPLS是指基于MPLS转发平面的Segment Routing&#xff0c;下文简称为Segment Routing。Segment Routing将网络路径分成一个个段&#xff0c;并且为这些…