jackson 问题定位
生活随笔
收集整理的這篇文章主要介紹了
jackson 问题定位
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題背景:
云計(jì)算Pass平臺(tái)版本升級(jí),導(dǎo)致引用的jackson的包直接由1.*升級(jí)為2.* 。在版本1.*中對(duì)于字段名與實(shí)際json不符的直接忽略了,而在2.*中則會(huì)報(bào)錯(cuò)。諸如此類,有較大差異,需要一一排查
?
一、配置maven依賴
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.5</version></dependency>?
https://mvnrepository.com
?
二、測(cè)試類
?
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,依然可以被識(shí)別 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 }?
測(cè)試結(jié)果:
(1)未能復(fù)現(xiàn)項(xiàng)目中報(bào)錯(cuò),推斷與版本號(hào)有關(guān)聯(lián)
(2)2.9.5? 版本可以解析出以上結(jié)果;但是切換到 2.7.0 或者 以下版本,又報(bào)不同的錯(cuò)
?
三、總結(jié)
不同版本的jackson存在較大差異,坑較多
?
【參考】https://www.jianshu.com/p/4bd355715419
轉(zhuǎn)載于:https://www.cnblogs.com/Hughzm/p/9399068.html
總結(jié)
以上是生活随笔為你收集整理的jackson 问题定位的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 2253 Frogger(最短路
- 下一篇: wpf mvvm 实例