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; } 如果大家对泛型的类型擦除比较熟悉的话,就会知
随机推荐
- 五板斧封杀Windows操作系统默认共享
- python django 增删改查操作 数据库Mysql
- 详谈JavaScript的闭包及应用
- php MessagePack介绍
- 如何在WIN2K下安装PHP4.04
- Python自定义scrapy中间模块避免重复采集的方法
- 动态指定任意类型的ObjectDataSource对象的查询参数
- phpnow重新安装mysql数据库的方法
- PHP IDE PHPStorm配置支持友好Laravel代码提示方法
- 自动清理 MSSQL Server Table Collation问题的解决方法
- 利用JavaScript实现栈的数据结构示例代码
- Android应用中设置alpha值来制作透明与渐变效果的实例
- 价值500元的seo课程教程笔记公布
- Linux多线程使用互斥量同步线程
- Objective-C的入门学习笔记
- Easyui Tree获取当前选择节点的所有顶级父节点
- php下获取客户端ip地址的函数
- php中引用符号(&)的使用详解
- PHP列出MySQL中所有数据库的方法
- c# Graphics使用方法(画圆写字代码)