转载请注明出处:

  在项目得不同环境上对接外部的服务接口,且存在不同版本间可能有字段不同得问题,遇到这种问题在使用jackson解析时,如果格式化得字符串与定义得java类不能完全对应时,就会报错:Unrecognized field ,代码还原:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper; public class CounterEntity {
private long inoctets; @JsonProperty("avg-bit-rate")
private long avgBitRate; @JsonProperty("avg-octet-rate")
private long avgOctetRate; public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
try {
String jsonStr = "{\"pkts\":0,\"octets\":0,\"inpkts\":0,\"inoctets\":0,\"avg-bit-rate\":0,\"avg-octet-rate\":0,\"avg-packet-rate\":0,\"rt-bit-rate\":0,\"rt-octet-rate\":0,\"rt-packet-rate\":0}";
CounterEntity entity = objectMapper.readValue(jsonStr, CounterEntity.class);
System.out.println(entity);
} catch (Exception e) {
e.printStackTrace();
}
}
}

  运行main方法,报错如下:

  

  解决方案,在转换得类上使用 这个注解 @JsonIgnoreProperties(ignoreUnknown = true) ,该注解会在解析的时候,会自动忽略一些不存在得属性。通过以下方式就可以正常得序列化和反序列化。

  @JsonIgnoreProperties是一个Jackson库提供的注解,用于标记在序列化和反序列化过程中需要忽略的属性。它可以应用于类级别和属性级别。 在类级别上使用@JsonIgnoreProperties注解,可以指定要忽略的属性列表。例如:

@JsonIgnoreProperties({"field1", "field2"})
public class MyClass {
private String field1;
private String field2;
private String field3; @JsonIgnoreProperties
private String field4;
}

UnrecognizedPropertyException: Unrecognized field 解决的更多相关文章

  1. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field 异常

    分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) 1.1.1. 前言 近期在使用ObjectMapper对象将jso ...

  2. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "FileSize"

    请求阿里云的OSS接口图片信息,返回json格式的数据,通过ObjectMapper将json转为Image对象时候报错转换失败 将json转对象的代码: String jsonStr = " ...

  3. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "ExceptionId"

    com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Exception ...

  4. 16. nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "auditUnitName"

    org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver:handleHttpMessageNotRead ...

  5. Jackson反序列化错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解决方法

    说明:出现这种问题的情况是由于JSON里面包含了实体没有的字段导致反序列化失败. 解决方法: // 第一种解决方案 // ObjectMapper对象添加 mapper.configure(Deser ...

  6. jackon - com.fasterxml.jackson.databind.exc.InvalidDefinitionException && UnrecognizedPropertyException: Unrecognized field 异常

    在用jackson解析json数据是碰到的问题 1.首先是InvalidDefinitionException 测试发现可能是目标类中无无参数构造方法导致异常. 添加无参构造方法后发现前一个异常解决但 ...

  7. 出现Unrecognized field "state" (class com.jt.manage.pojo.ItemCat)异常

    当在pojo中,往往会出现字段无法一一对应时,有可能就会出现创建Unrecognized field "state" (class com.jt.manage.pojo.ItemC ...

  8. [Linux]Service mysql start出错(mysql: unrecognized service)解决方法

    service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误的方法如下: [hitony ~]# service mysql star ...

  9. 16.copy_to定制组合field解决cross-fields搜索弊端

    主要知识点: 在index的mapping中加copy_to字段的方法 copy_to搜索方法     用most_fields策略,去实现cross-fields搜索,有3大弊端,为了解决这三个弊端 ...

  10. raw cannot be resolved or is not a field解决办法

    解决raw文件夹问题 查看左侧项目/res文件夹下是否有raw文件夹,(一定是放到res文件夹下,raw在项目开始创建时候不会自动创建,所以要自己创建)

随机推荐

  1. 学习docker看此文足以

    什么是 Docker Docker 最初是 dotCloud 公司创始人  在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 ,主要项目代码在  上进行 ...

  2. 【性能优化】优雅地优化慢查询:缓存+SQL修改组合拳

    问题描述 单例数据库模式中,后端高并发请求多(读多写少),导致数据库压力过大,关键接口响应变慢,严重影响体验. 需求 减少接口的响应时间. 寻找解决方案 由于问题主要处在数据库压力过大的情况,采用两种 ...

  3. Springfox与SpringDoc——swagger如何选择(SpringDoc入门)

    本文分享自天翼云开发者社区@<Springfox与SpringDoc--swagger如何选择(SpringDoc入门)>,作者: 才开始学技术的小白 0.引言 之前写过一篇关于swagg ...

  4. 【书籍阅读】【Spring实战】二 装配Bean

    Spring配置的可选方案 ①自动化装配Bean:@Component ②Java代码装配Bean:@Bean ③XML装配Bean 自动化装配Bean Spring从两个角度实现对 @Compone ...

  5. java项目 学生成绩管理系统 (源码+数据库文件)

    ​ 需要的私信我 备注来意:项目名称 来了就点个赞再走呗,即将毕业的兄弟有福了 文章底部获取源码 java项目  学生成绩管理 (源码+数据库文件)技术框架:java+springboot+vue+m ...

  6. python pyinstaller库

    简要 pyinstaller模块主要用于python代码打包成exe程序直接使用,这样在其它电脑上即使没有python环境也是可以运行的. 用法 一.安装 pyinstaller属于第三方库,因此在使 ...

  7. mysql基础_事务

    定义 一个事务其实就是一个完整的业务逻辑,是一个最小的工作单元,不可再分,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败. 例如:王五向赵六的账户上转 ...

  8. 第十四届蓝桥杯省赛C++ B组(个人经历 + 题解)

    参赛感受 这是我第一次参加蓝桥杯的省赛,虽然没什么参赛经验,但是自己做了很多前几届蓝桥杯的题,不得不说,这一届蓝桥杯省赛的难度相较于之前而言还是比较大的.之前很流行蓝桥杯就是暴力杯的说法,但是随着参赛 ...

  9. BS系统自动更新的实现

    背景: 我公司做的考试系统(基于java开发的BS系统)是卖给学校的,随着客户数量增多,日常版本升级.远程维护工作占了程序员很多时间,遂考虑实现系统自动化更新. 要解决的问题及解决方案: 1.什么时候 ...

  10. #Powerbi 理解VAR函数

    VAR意思即为变量,在编程语言中,变量是一个重要概念,DAX作为一种语言也有变量概念,利用VAR,我们可以缩短我们一些DAX语句的长度,更清晰的表达我们的度量值计算逻辑. 举例说明: 我们要计算一个产 ...