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;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
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;
随机推荐
- 解决option标签selected="selected"属性失效的问题
- 在Python的Flask框架中使用模版的入门教程
- 浅谈mysql中多表不关联查询的实现方法
- vue一步步实现alert功能
- VS2005 水晶报表在时部署时遇到的问题
- React-Native使用Mobx实现购物车功能
- ES6中Math对象的部分扩展
- php中读写文件与读写数据库的效率比较分享
- php实现的简单中文验证码功能示例
- Python实现发送QQ邮件的封装
- 解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
- PHP生成网页快照 不用COM不用扩展.
- C#实现XSL转换的方法
- JavaScript创建闭包的两种方式的优劣与区别分析
- PHP简单实现合并2个数字键数组值的方法
- Linux内核设备驱动之Linux内核模块加载机制笔记整理
- 易语言利用鼠标模拟点击的方式实现自动画图的代码
- layUI实现三级导航菜单效果
- 解决Vue中 父子传值 数据丢失问题
- Python绘制热力图示例