java生成json实现隐藏掉关键属性
作者:猿人启示录 发布时间:2021-12-07 17:31:29
标签:java,json,隐藏,属性
java生成json隐藏关键属性
今天在工作中遇到一个这样的问题,当后端返回数据时一些关键信息或敏感信息并不想返回到前端,但是又懒得定义专用的DTO返回怎么办(强烈不推荐,最好定义专用的DTO返回),比如一张用户表有属性有用户名、密码、昵称、头像、性别、个人简介,用@ResponseBody生成json直接用户名和密码都输出到前台展示了,用户名和密码这两个属性怎么隐藏掉。
我们项目中使用的是Spring Boot,默认用的是Jackson做JSON的serialization/deserialization。
因此解决方案如下
用@JsonIgnore或@JsonProperty注解就可以了
private String password;
@JsonIgnore
public String getPassword(){}
或者
@JsonProperty(access = Access.WRITE_ONLY)
private String password;
其实方法还有很多,例如还可以写过滤器来实现,如果你使用的是FastJson转Json字符串,想要忽略指定属性可以使用注解@JSONFie 。
例如:
public class FastJsonInputBean implements Serializable {
private String contractTemplateId;
private String contractId;
@JSONField(serialize = false)
private String contractImage;
private String contractVersion;
}
java实体转json忽略属性
import com.alibaba.fastjson.annotation.JSONField;
fastjson 过滤指定字段
@JSONField(serialize=false)
private String message;
序列化的时候就不会包含这个字段。
另外, 你从一个bean中只取一个字段,没必要这样做,你完全可以定义一个新的bean。
@JsonIgnoreProperties(value={"addressId"})//在解析成json时,忽略子属性的addressId字段
public class DicType {
private String addressId;
}
@JsonIgnore
private String img;
来源:https://itonline.blog.csdn.net/article/details/90748248
0
投稿
猜你喜欢
- 本文实例讲述了Java Web实现添加定时任务的方法。分享给大家供大家参考,具体如下:定时任务时间控制类/** * 定时任务时间控制 * *
- 一:对象,JavaBean,SpringBean的区别1.什么是JavaBeanjavaBean要求所有属性为私有,该类必须有一个公共无参构
- android线程消息机制主要由Handler,Looper,Message和MessageQuene四个部分组成。平常在开发中,我们常用来
- C++11 引入一个全新的线程库,包含启动和管理线程的工具,提供了同步(互斥、锁和原子变量)的方法,我将试图为你介绍这个全新的线
- 笔者计划为大家介绍分布式文件系统,用于存储应用的图片、word、excel、pdf等文件。在开始介绍分布式文件系统之前,为大家介绍一下使用本
- 1.面对对象的初步认识1.1什么是面向对象用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。1
- Java事件处理机制java中的事件机制的参与者有3种角色:1.event object:事件状态对象,用于listener的相应的方法之中
- 最近用了Stream流,感觉超好用,记录一下。1、快速创建List比如我有个实体类User,User有个属性Namepublic class
- java 接口回调实例详解首先官方对接口回调的定义是这样的,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,
- 1、注解是什么Java 注解用于为 Java 代码提供元数据,看完这句话也许你还是一脸懵逼,用人话说就是注解不直接影响你的代码执行,仅提供信
- 前言在上一篇学习SpringBoot中,整合了Mybatis、Druid和PageHelper并实现了多数据源的操作。本篇主要是介绍和使用目
- 一、系统介绍1.开发环境开发工具:Eclipse2021JDK版本:jdk1.8Mysql版本:8.0.132.技术选型Java+Swing
- 1、cookie是啥?随手百度了网友的说说简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在
- 一、Arthas官方文档https://arthas.aliyun.com/doc/二、springBoot整合方式1、pom文件引入<
- 这篇文章主要介绍了java多线程加锁以及Condition类的使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 一、导入相关jar包,pom依赖如下: <dependency> <groupId>org
- 关于《JavaCV的摄像头实战》系列《JavaCV的摄像头实战》顾名思义,是使用JavaCV框架对摄像头进行各种处理的实战集合,这是欣宸作为
- 本文实例讲述了C#实现3步手动建DataGridView的方法。分享给大家供大家参考。具体如下:DataView dvCmControlIn
- 面试题1:说一下你对ReentrantLock的理解?ReentrantLock是JDK1.5引入的,它拥有与synchronized相同的
- 一、定界符成帧Framer接口package framer;import java.io.IOException;import java.i