jackson反序列化时如何忽略不需要的字段
目录
- jackson反序列化忽略字段
- 解决办法很简单
- jackson忽略指定属性
- 例子
jackson反序列化忽略字段
JSON字符串中含有我们并不需要的字段,那么当对应的实体类中不含有该字段时,会抛出一个异常,告诉你有些字段没有在实体类中找到。
解决办法很简单
在声明ObjectMapper之后,加上上述代码:
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
jackson忽略指定属性
@JsonIgnore
@JsonProperty
@JsonIgnoreProperties
使用@JsonIgnore注解,在需要忽略的user字段。
例子
private String line; private String flight; private String class; @JsonIgnore private String testPar; @JsonIgnore private String week; //testPar和week在用jackson时就不会序列化到json中
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Jackson序列化和反序列化忽略字段操作
一.设置Jackson序列化时只包含不为空的字段 new ObjectMapper().setSerializationInclusion(Include.NON_NULL); 二.设置在反序列化时忽略在JSON字符串中存在,而在Java中不存在的属性 new ObjectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); 三.Jackson序列化时忽略字段的方式 1.方式一:FilterProvider a)在需
-
如何利用Jackson序列化忽略指定类型的属性详解
前言 本文准确来讲是探讨如何用 Jackson 来序列化 Apache avro 对象,因为简单用 Jackson 来序列化 Apache avro 对象会报错.原因是序列化 Schema getSchema() 时会报错,后面会讲到,需要序列化时忽略该属性.那么能不能在 getSchema() 上加上 @JsonIgnore 来忽略该属性呢?原理上是通的.不过手工修改的 avsc 生成的 Java 文件随时会因为重新编译而还原,所以不太具有实际可操作性,当然通过定制编译 avsc 用的模板文件
-
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
-
jackson反序列化时如何忽略不需要的字段
目录 jackson反序列化忽略字段 解决办法很简单 jackson忽略指定属性 例子 jackson反序列化忽略字段 JSON字符串中含有我们并不需要的字段,那么当对应的实体类中不含有该字段时,会抛出一个异常,告诉你有些字段没有在实体类中找到. 解决办法很简单 在声明ObjectMapper之后,加上上述代码: objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); jackson忽略指
-
Jackson 反序列化时实现大小写不敏感设置
常用配置 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(Feature.IGNORE_UNKNOWN,true); objectMapper.configure(Feature.WRITE_BIGDECIMAL_AS_PLAIN,true); objectMapper.configure(JsonParser.Feature.ALLOW_MISSING_VALUES,true); objectMapp
-
使用Jackson反序列化遇到的问题及解决
Jackson反序列化遇到的问题 最近在项目中需要使用Jackson把前台转来的字符转为对象,转换过程中发生了错误,报错如下 com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not construct instance of java.util.Date from String value '2018-09-14 15:12:08': not a valid representation (error: Failed
-
Java开发中POJO和JSON互转时如何忽略隐藏字段的问题
1. 前言 在Java开发中有时候某些敏感信息我们需要屏蔽掉,不能被消费这些数据的客户端知道.通常情况下我们会将其设置为null或者空字符 "",其实还有其它办法,如果你使用了Jackson的话.接下来我将以一个实际场景来告诉你可以怎么做. 2. Jackson如何忽略字段 这里都以JSON序列化为例.假如我们在业务中需要返回用户信息,已有的POJO是这样的: import lombok.Data; /** * @author felord.cn */ @Data public cla
-
解决Jackson反序列化map,set等复杂类型问题
工作中遇到了这个问题,我简单的用代码复现一下,就是一个map,value又为一个set,导致反序列化报错 @Test public void test10() throws Exception { //准备一下数据 Map<String, Set<String>> map = new HashMap<>(); map.put("aaa",new HashSet<String>(){{add("111");add(&qu
-
FastJson踩坑:@JsonField在反序列化时失效的解决
问题描述 一个对象(某个字段为枚举类型,为了不采用默认的序列化过程,用@JSONField指定了序列化器和反序列器,过程见旧博文),将其放到JSONArray中再序列化JSONArray对象,用得到的JSON字符串再反序列化时,发现能够正常反序列化出JSONArray,而对JSONArray中的某个元素再反序列化成类对象时,出错. 示例 同样用旧博文的示例做个简单测试. 基本对象类Article. public class Article { private String title; priv
-
Jackson反序列化@JsonFormat 不生效的解决方案
今天在线上发现一个问题,在使用Jackson进行时间的反序列化时,配置的 @JsonFormat 没有生效 查看源码发现,Jackson在反序列化时间时,会判断json字段值类型,如下: 由于在我们服务里,前端传时间值到后端时采用了时间戳的方式,json值被判断为数字类型,所以Jackson在反序列化时直接简单粗暴的方式处理,将时间戳转换为Date类型: 为了能够按照正确的格式解析时间,抹去后面的时间点,精确到日,只好自定义一个时间解析器.自定义的时间解析器很好实现,网上已经有很多实例代码,只需
-
Android 使用版本控制工具时添加忽略文件的方式(详解)
Android Studio 配合SVN时,添加忽略文件相对简单,首先打开项目的Settings选项,切换到Version Control下的Ignored Files目录,如下图: ignore1.png 点击右上角绿色加号,出现如下对话框: ignore2.png 其中 Ignore specified file选项是忽略指定的文件 Ignore all files under选项是忽略指定文件夹下的文件 Ignore all files matching选项是忽略匹配指定格式的文件 一般需
-
JDK反序列化时修改类的全限定性名解析
应用场景 SpringSecurityOAuth2有一个奇葩的设计,那就是它将与access_token相关的所有属于都封装到OAuth2AccessToken中,然后保存时会直接将该对象序列化成字节写入数据库.我们在资源服务器中想要直接读数据库来取出access_token来验证令牌的有效性,然而又不想引入SpringSecurity的相关依赖污染jar包.这时可以将SpringSecurity中OAuth2AccessToken的唯一实现类DefaultOAuth2AccessToken的源
-
泛型的类型擦除后fastjson反序列化时如何还原详解
目录 铺垫 错误写法1 错误写法2 正确写法 TypeReference 验证 扩展 铺垫 在前面的文章中,我们讲过Java中泛型的类型擦除,不过有小伙伴在后台留言提出了一个问题,带有泛型的实体的反序列化过程是如何实现的,今天我们就来看看这个问题. 我们选择fastjson来进行反序列化的测试,在测试前先定义一个实体类: @Data public class Foo<T> { private String val; private T obj; } 如果大家对泛型的类型擦除比较熟悉的话,就会知
随机推荐
- IOS提醒用户重新授权打开定位功能
- 调试ASP.NET2005/2008时,端口不正确的解决三套方案
- python中pandas.DataFrame排除特定行方法示例
- VBA中连接SQLSERVER数据库例子
- ajax简介_动力节点Java学院整理
- javascript中的Base64、UTF8编码与解码详解
- vue之nextTick全面解析
- Java中获取类路径classpath的简单方法(推荐)
- PHP中的print_r 与 var_dump 输出数组
- js 方法实现返回多个数据的代码
- Javascript图像处理—为矩阵添加常用方法
- Javascript json object 与string 相互转换的简单实现
- VBS教程:属性-AtEndOfStream 属性
- MFC设置对话框焦点的方法简述
- 关于redis Key淘汰策略的实现方法
- 读Javascript高性能编程重点笔记
- 我教你学之注册表的安全设置
- Java实现从jar包中读取指定文件的方法
- 最常用的1000个Java类(附代码示例)
- Java同步函数代码详解