jackson 问题定位
生活随笔
收集整理的這篇文章主要介紹了
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 问题定位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 2253 Frogger(最短路
- 下一篇: IDApython 命令