首页 > 编程语言 >【Java】使用 fasterxml.jackson 反序列化的一个注意事项

【Java】使用 fasterxml.jackson 反序列化的一个注意事项

时间:2023-06-28 18:33:06浏览次数:48  
标签:Jackson Java Json jackson 序列化 ObjectMapper fasterxml

我们在对接接口时,不时会遇到以 Json 格式返回数据的接口。后端解析此类接口返回数据时,不免需要进行反序列化以获取到需要的数据对象。

常用的反序列化工具有 Fastjson、Jackson、Gson。这三种都是不错的 Json 处理工具,我这里较常用的是 Jackson。

使用 Jackson 反序列化:

  1. 添加 maven 依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>xx.xx.xx</version>
</dependency>

  2. 创建 ObjectMapper 对象,并进行解析方式的配置

ObjectMapper objectMapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

  其中,configure 方法配置该 ObjectMapper 对象解析 Json 字符串的方式。DeserializationFeature 以枚举方式给出了 ObjectMapper 的配置方式。该方法可由对应的 enable 或 disable 取代,注意对应的状态字即可。

  3. 使用 ObjectMapper 的 readValue 方法进行 反序列化,将 Json 字符串转化成指定类的对象

DataResult dataResult = objectMapper.readValue(JsonStr, DataResult.class);

最近在使用

标签:Jackson,Java,Json,jackson,序列化,ObjectMapper,fasterxml
From: https://www.cnblogs.com/southtwilight/p/17512201.html

相关文章

  • JavaScript学习 -- 内置函数(Math和Date)
    一、Date函数letdate=newDate()console.log("当前日期和时间:"+date)console.log("当前日期和时间:"+date.toLocaleString())console.log("年份:"+date.getFullYear())console.log("月份:"+(parseInt(date.getMonth())+1))console.log("日:"......
  • js promise对象数组,使用reduce序列化执行
    自己使用mdn官方例子测试了一下,发现还有一些小问题,调试了一下OK了。consttimeOut=function(ms){ returnnewPromise(function(resolve){ returnsetTimeout(resolve,ms); })}varp1=function(){ returnnewPromise(function(resolve){ console.log(newDate()+'......
  • Java基础-Day05
    Java基础-Day05breake和continue使用上的相同点和不同点不相同点:break:可用于switch-case和循环结构(结束当前循环)continue:只能循环结构(结束档次循环)相同点:其后不可以声明执行语句衡量一个功能代码的优劣正确性可读性健壮性高效率与低储存:时间复杂度(衡量效率)和空间......
  • Java 12 新特性
    Java12是Java平台的另一个重要版本,它引入了一些新特性和改进。以下是Java12的一些新特性以及基于这些特性的Java代码案例:Switch表达式(SwitchExpressions):Java12引入了新的Switch表达式,使得Switch语句更加灵活和易用。下面是一个使用Switch表达式的示例:1......
  • Java反射
    动态语言:是指程序在运行是可以改变其结构,新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的JavaScript就是动态语言,除此之外Ruby、Python等也属于动态语言,而C、C++则不属于动态语言。从反射角度说,Java属于半动态语言。反射机制概念(运行状态中知道类所有的属性和方法......
  • JavaScript引爆Salesforce职业生涯!抓住高薪机会
    Salesforce是一款领先的CRM软件,已被各种规模和行业的企业使用多年。Salesforce不仅易于使用,而且可定制,使企业能够改善其销售、营销、客户服务和其他业务流程。近年来,Salesforce一直在创新,从传统的基于Oracle的平台转变为在业界更具吸引力的解决方案。目前,许多工作可以由人工智能......
  • 1. 使用 IntelliJ IDEA 开发 Azure Function APP (Java)
    1.1前提Azure账户并有可食用的订阅。创建免费的Azure账户。Azure支持的JavaDevelopmentKit(JDK),JDK8或JDK11。IntelliJIDEA无限制版本或社区版本均可。Maven3.5+最新的FunctionCoreTools1.2安装插件并登录在IntelliJIDEA中安装AzureToolkit插......
  • 解锁高质量文档转换:通过Java应用程序免费将PDF转换为XPS
    在当今数字时代,文档转换已经成为我们日常生活中不可或缺的一部分。然而,不是所有的文件格式都是平等无差的,在与他人共享文档时可能会遇到兼容性问题。这就是我们需要进行文件格式转换的原因,而将PDF转换为XPS是一种受欢迎的转换选择。如果你正在寻找一种使用Java将PDF文件转换为XPS......
  • 讯飞离线语音合成新版(Aikit)-android sdk合成 demo(Java版本)
    前言:科大讯飞的新版离线语音合成,由于官网demo是kt语言开发的,咱也看不懂kt,搜遍了全网也没看到一个java版的新版离线语音demo,现记录下,留给有缘人参考!!!!!毕竟咱在这上面遇到了不少的坑。如果能留言指正,那就更好了。第一步:​ 官网注册账号---》实名认证---》点击语音合成---》离线语音......
  • Java中用到的线程调度
    抢占式调度抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。协同式调度协同......