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

目录
  • java生成json隐藏关键属性
    • 因此解决方案如下
  • 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;

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

(0)

相关推荐

  • Springboot返回的json屏蔽某些属性的操作

    entity上增加@JsonIgnoreProperties注解,标记需要忽略的属性,支持多个 @Entity @JsonIgnoreProperties(value={"status","updateTime"}) public class GoldSell implements Serializable{ 还有一种方式,直接注解在具体的property上,效果一样 @JsonIgnore private Integer status; 不过这两种都是影响属性,会

  • java jackson 将对象转json时,忽略子对象的某个属性操作

    我就废话不多说了,大家还是直接看代码吧~ //父对象 public class user implements java.io.Serializable { @JsonIgnoreProperties(value={"addressId"})//在解析成json时,忽略子属性的addressId字段 private Address address; private String username; //......... } //子对象 public class Address imp

  • java json不生成null或者空字符串属性(详解)

    大家平时用java对象转json字符串.null或者空字符串属性是不需要生成到json字符串里面的. 如下方式生成,没有使用的属性也会生成json字符串属性. JSONArray jsonarray = JSONArray.fromObject(ecmMessageMap.values()); msgObj = jsonarray.toString(); {"actionType":"","clientIp":"","

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

    目录 java生成json隐藏关键属性 因此解决方案如下 java实体转json忽略属性 java生成json隐藏关键属性 今天在工作中遇到一个这样的问题,当后端返回数据时一些关键信息或敏感信息并不想返回到前端,但是又懒得定义专用的DTO返回怎么办(强烈不推荐,最好定义专用的DTO返回),比如一张用户表有属性有用户名.密码.昵称.头像.性别.个人简介,用@ResponseBody生成json直接用户名和密码都输出到前台展示了,用户名和密码这两个属性怎么隐藏掉. 我们项目中使用的是Spring B

  • 使用java生成json时产生栈溢出错误问题及解决方案

    目录 java生成json时产生栈溢出错误 环境 这里会出现栈溢出错误 json转换时出现栈内存溢出 java生成json时产生栈溢出错误 环境 java + hibernate +html 本来,java中使用json事件很正常的事,但小心有的地方有点“坎儿”. 比如,在java中建立了json对象想传到前台去: List<Comment> commentsList = commentMng.findByArticleId(articleid); JSONArray jsonMembers

  • 详解java生成json字符串的方法

    例1:将map对象添加一次元素(包括字符串对.数组),转换成json对象一次. 代码: package com.json; //这是使用org.json的程序: import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; public class jsontest { public static void main(String[] args)

  • java生成json数据示例

    JsonTools.java 复制代码 代码如下: package com.lihua.json.tools; import net.sf.json.JSONObject; public class JsonTools { public JsonTools() { } /**   * @param key   *            表示json字符串的头信息   * @param value   *            是对解析的集合的类型   * @return   */  //将数据转

  • 浅谈使用java解析和生成JSON

    JSON概述 JSON即javascript object notation,是javascript对象表示法的子集.具有以下特点: 数据放在键值对中: 数据由逗号分隔: 花括号表示对象: 方括号表示数组. JSON的值可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true或false) 数组(方括号内) 对象(花括号内) null JSON的基本语法 JSON对象 JSON对象在花括号中书写,对象可以包含多个键值对,例如: { "firstName":"Jo

  • Java中JSON处理工具类使用详解

    本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下 import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.seri

  • Java面向对象之成员隐藏与属性封装操作示例

    本文实例讲述了Java面向对象之成员隐藏与属性封装操作.分享给大家供大家参考,具体如下: 关于这个功能的优点我现在体会还不深,只是从书本中找到了面向对象编程的一个原则--尽量让数据私有.如果需要对数据的信息进行修改或者获取,不会直接修改成员信息,而是通过方法的调用来实现. 写如下代码: packagefengzhuang; class HuaShanPai { private String zhangmen; private int dizishu; private String gongfu;

  • 详解Java中JSON数据的生成与解析

    一.什么是JSON JSON: JavaScript Object Notation JS对象简谱,是一种类似于XML的语言.相比于XML,它更小.更快.更易解析.主要用于项目前端和Server的网络数据传输. 二.JSON的语法 对象 一个对象,由一个大括号表示{},{}中通过一个个的键值对来描述对象的属性 注意: 键与值之间使用冒号连接,多个键值对之间使用逗号分隔. 键值对的键,应使用引号引住(通常Java解析时,键不使用引号会报错,而JS能正确解析):键值对的值,可以是JS中的任意数据类型

  • java后端把数据转换为树,map递归生成json树,返回给前端(后台转换)

    java 后端,把数据转换为树,map递归生成一颗json树,返回给前端(后台转换) 1.为什么要写这样的一篇博客? 2.java 后端代码 3. 转化完的数据在前端格式为类似于: 1.为什么要写这样的一篇博客? 在公司的实习的时候,遇到了一个略坑的东西,就是要医院的科室通过其子父id做成一颗项目树,但是科室的层次有很多,有点甚至到了六层,导致最终选择了优化后的递归算法. 如果在三层或者三层以下,可以考虑使用内部类,超过三层的话,最好就使用递归了,不过记得必须的优化. 2.java 后端代码 代

  • Java Servlet生成JSON格式数据并用jQuery显示的方法

    本文实例讲述了Java Servlet生成JSON格式数据并用jQuery显示的方法.分享给大家供大家参考,具体如下: 1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException; import java.io.PrintWriter; import java.util.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet;

随机推荐