java生成json实现隐藏掉关键属性

 更新时间:2022年03月03日 09:50:41   作者:猿人启示录  
这篇文章主要介绍了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;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解SpringBoot如何自定义一个Starter

    详解SpringBoot如何自定义一个Starter

    小伙伴们曾经可能都经历过整天写着CURD的业务,都没写过一些组件相关的东西,这篇文章记录一下SpringBoot如何自定义一个Starter。原理和理论就不用多说了,可以在网上找到很多关于该方面的资料,这里主要分享如何自定义
    2022-11-11
  • springboot自动重连Redis的实现方法

    springboot自动重连Redis的实现方法

    由于网络或服务器问题,Redis连接可能会断开,导致应用程序无法继续正常工作,本文主要介绍了springboot自动重连Redis的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Java实现英文句子中的单词顺序逆序输出的方法

    Java实现英文句子中的单词顺序逆序输出的方法

    这篇文章主要介绍了Java实现英文句子中的单词顺序逆序输出的方法,涉及java字符串遍历、判断、截取、输出等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • springAop实现权限管理数据校验操作日志的场景分析

    springAop实现权限管理数据校验操作日志的场景分析

    这篇文章主要介绍了springAop实现权限管理数据校验操作日志的场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java IO流之字节输入流的使用详解

    Java IO流之字节输入流的使用详解

    这篇文章主要为大家详细介绍了Java IO流中字节输入流的使用,文中的示例代码讲解详细,对我们学习Java有一定的帮助,需要的可以参考一下
    2022-08-08
  • Springboot使用cache缓存过程代码实例

    Springboot使用cache缓存过程代码实例

    这篇文章主要介绍了Springboot使用cache缓存过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java实现推箱子游戏

    Java实现推箱子游戏

    这篇文章主要为大家详细介绍了Java实现推箱子游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Servlet开发JavaWeb工程示例详解

    Servlet开发JavaWeb工程示例详解

    这篇文章主要介绍了Servlet开发JavaWeb工程示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java分布式ID中Snowflake雪花算法应用实现

    Java分布式ID中Snowflake雪花算法应用实现

    Snowflake算法作为一种高效且易于实现的分布式ID生成方案,能够很好地满足分布式系统中对全局唯一ID的需求,本文就来介绍一下Java分布式ID中Snowflake雪花算法应用实现,感兴趣的可以了解一下
    2024-07-07
  • java 实现图片圆角处理、背景透明化

    java 实现图片圆角处理、背景透明化

    这篇文章主要介绍了java 实现图片圆角处理、背景透明化,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论