jackson 问题定位
问题背景:
云计算Pass平台版本升级,导致引用的jackson的包直接由1.*升级为2.* 。在版本1.*中对于字段名与实际json不符的直接忽略了,而在2.*中则会报错。诸如此类,有较大差异,需要一一排查
一、配置maven依赖
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.5</version></dependency>
https://mvnrepository.com
二、测试类
1 package com.example.myspring.transfer; 2 3 import com.example.myspring.App; 4 import com.fasterxml.jackson.core.JsonProcessingException; 5 import com.fasterxml.jackson.databind.ObjectMapper; 6 import org.junit.Test; 7 8 import java.io.IOException; 9 import java.util.Arrays; 10 import java.util.HashMap; 11 import java.util.Map; 12 13 public class JacksonTest { 14 15 private ObjectMapper objectMapper = new ObjectMapper(); 16 17 Map map = new HashMap(); 18 19 @Test 20 public void toJsonTest1() throws JsonProcessingException { 21 // 多种类型可以先封装为Map 22 map.put("alibaba", new App()); 23 map.put("tengxun", Arrays.asList("weixin", "wangzherongyao")); 24 map.put("hugh", null); 25 map.put("DOU", "DOU"); 26 System.out.println(objectMapper.writeValueAsString(map)); 27 // {"alibaba":{},"DOU":"DOU","tengxun":["weixin","wangzherongyao"],"hugh":null} 28 } 29 30 @Test 31 public void toJsonTest2() throws IOException { 32 // 新加非类Stu属性six,且值为null,依然可以被识别 33 String likeStu = "{\"sto\":\"001\",\"name\":\"xx\", \"six\":null}"; 34 Map<String, Object> mock = objectMapper.readValue(likeStu, Map.class); // {"sto":"001","name":"xx","six":null} 35 System.out.println(objectMapper.writeValueAsString(mock)); 36 } 37 38 public static class Stu{ 39 40 private String sto; 41 private String name; 42 43 public Stu(String sto, String name) { 44 this.sto = sto; 45 this.name = name; 46 } 47 48 public String getSto() { 49 return sto; 50 } 51 52 public void setSto(String sto) { 53 this.sto = sto; 54 } 55 56 public String getName() { 57 return name; 58 } 59 60 public void setName(String name) { 61 this.name = name; 62 } 63 } 64 }
测试结果:
(1)未能复现项目中报错,推断与版本号有关联
(2)2.9.5 版本可以解析出以上结果;但是切换到 2.7.0 或者 以下版本,又报不同的错
三、总结
不同版本的jackson存在较大差异,坑较多
【参考】https://www.jianshu.com/p/4bd355715419
转载于:https://www.cnblogs.com/Hughzm/p/9399068.html
jackson 问题定位相关推荐
- 有趣的Hack-A-Sat黑掉卫星挑战赛——定位卫星Jackson
国家太空安全是国家安全在空间领域的表现.随着太空技术在政治.经济.军事.文化等各个领域的应用不断增加,太空已经成为国家赖以生存与发展的命脉之一,凝聚着巨大的国家利益,太空安全的重要性日益凸显[1].而 ...
- 再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报
✍前言 你好,我是YourBatman. 今天中午收到我司安全部发了一封邮件:Jackson存在安全漏洞.查了一下,这件事并不算很新鲜了(已经过了10天的样子),本文来聊聊吧. 说起来还蛮戏剧化:阿里 ...
- Spring Boot 微服务性能下降九成!使用 Arthas 定位根因
作者 | 王瑞显 掌门教育基础架构部研发工程师 来源|阿里巴巴云原生公众号 背景 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测不达标. 升级前压测报告: ...
- 【SpringMVC】从Fastjson迁移到Jackson,以及对技术选型的反思
为什么要换掉fastjson 直接原因是fastjson无法支持注解形式的自定义序列化和反序列化,虽然其Github上的Wiki上说明是支持的.但是实测结果表明:Test类的序列化被fastjson的 ...
- 使用Jackson将一个对象转换成一个JSON字符串
由于ajax的流行,在程序中使用了越来越多的json来进行数据的传输,而Jackson可以将一个普通的java对象转换成一个json的字符串,帮助程序员进行前后端数据的传输. 首先需要导入程序依赖的j ...
- jackson 驼峰注解_jackson 常用注解,比如忽略某些属性,驼峰和下划线互转
一般情况下使用JSON只使用了java对象与字符串的转换,但是,开发APP时候,我们经常使用实体类来做转换:这样,就需要用到注解: Jackson默认是针对get方法来生成JSON字符串的,可以使用注 ...
- 面试被问:Selenium元素定位不到问题,如何回答?
1.maven有什么作用? 最常用的maven相关功能大概以下几种: a. 管理jar依赖 b. 构建项目(打包.编译等) c. 发布项目(共享.上传至服务器,供他人使用) Maven用配置文件的方式 ...
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码...
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...
- 借助Jackson的JsonTypeInfo注解实现多态类的解析
一.问题背景 Jackson框架对json字段的序列化和反序列化默认策略是根据getter和setter方法,去掉get和set,再把首字母小写,便找到了对应的字段.通常情况,我们都是对普通的POJO ...
最新文章
- 提高性能的Varnish缓存方案
- 单片机自学多久可以成功?学单片机需要什么基础知识?
- 从3D人脸到自动驾驶,CVPR2020十个顶级开源数据集
- 使用Mysql ID自增长时 在Mapper的insert里添加对应的代码
- Java 10更新汇总,新的编译器通吃主流编程语言
- JavaWeb:HttpServletResponse和HttpServletRequest
- 图像处理常用边缘检测算子
- 如何使用 controllerExtensions 给 SAP Fiori Elements List Report 的表格注册事件响应函数
- java 前端导出exvel_使用纯前端做的Excel导出了解一下
- 看完这篇文章保你面试稳操胜券——React篇
- Linux 退出vi编辑模式
- python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
- 关于c语言循环的格式,关于for循环的格式
- 如何在Mac上添加密码提示?
- 海康rtsp抓包分析
- TransCAD实用技术梗概
- DWG 、DXF格式互转、CAD版本转换,记住一个就能快速提高你的工作效率!
- 对口升学计算机基础知识教案,教案河北省计算机专业对口升学讲义--计算机基础知识部分.ppt...
- 主成分分析(PCA)原理、步骤
- 8类网线利弊_八类网线你用过吗?与六类、七类等网线有啥区别?
热门文章
- 《微信公众平台开发最佳实践》——第3章 基 础 接 口 3.1 接收用户消息
- Oracle 维护数据的完整性 一 索引
- Linux C下实现线程池
- Citrix WebInterface 安装指导
- 一个很好的练听力的网站
- html导入错误 wordpress,纯代码为WordPress压缩前端html代码 附BUG修复
- android网络质量,基于Android的移动通信网络质量信息系统的设计与开发
- matlab 计算大型距离方阵,distance matrix
- nacos 配置_阿里巴巴 Nacos 分布式配置中心原理
- VS2015占内存大吗?_手机是6GB运行内存,何为后台却显示3G内存?