導航:首頁 > 編程大全 > jackson工具類

jackson工具類

發布時間:2023-03-05 09:27:25

1. GitHub上面有哪些經典的java框架源碼

2. jackson使用入門

jackson是java中最常用的json處理工具包之一,其他類似功能的包括gson和fastjson等。本文將簡單介紹jackson的基礎知識,以作為各位讀者未來使用的參考。

jackson有三種處理json的方式,分別為

這種方式可以在json字元串和pojo對象之間直接進行轉換。比如說我們有一個json字元串

通過這種方式我們可以直接將其轉換成一個Person類的實例,其中firstName和lastName是Person類定義的兩個成員變數。

這種方式類似於xml的DOM解析,在json字元串和DOM樹之間進行轉換,DOM樹的節點是 JsonNode 類型。其優點在於以統一的方式看待json字元串中的各個部分,使用起來更靈活。

如何構建 JsonNode 的DOM樹呢? JsonNode 是抽象類,需要使用 ObjectNode 和 ArrayNode 等子類。

這種方式類似於xml的SAX解析,每次處理一個事件,或者這里叫token更合適。

反序列化用的是 JsonParser ,它的使用方式和迭代器非常相似。你每次處理的都是一個token,比如說在上面這個json字元串中,包括{、firstName、dizzy、lastName、dwarf、}等6個token,通過調用 nextToken 方法可以獲得下一個token。

序列化用的 JsonGenerator ,它的方法都非常直觀,比如說 writeStartObject 、 writeStringField 、 writeEndObject 等,這里就不具體介紹了。

通過註解可以定製jackson的各種特性,這里只介紹最常用的幾個。

這樣一個firstName為"dizzy"的Person序列化後就變成了

一般情況下java變數命名採用駝峰方式,而json字元串可能採用下劃線方式。解決方式為在類或者成員變數上增加以下註解

需要注意的是雖然反序列化的時候first_name會對應到firstName變數,但是序列化的時候也會輸出為first_name

有時候我們希望根據json字元串中某個欄位的取值反序列化成不同的子類,比如說type為1是Student,type為2是Teacher,注意Student和Teacher必須繼承同一個父類Person。

如果我們希望ObjectMapper.readValue返回List<Person>或者Map<String, Person>,由於List<Person>.class和Map<String, Person>.class在java中是不合法的,需要藉助於 TypeReference

Spring提供的 類封裝了 ObjectMapper ,如果希望對 ObjectMapper 進行定製,可以自己生成一個 對象並注冊為bean

有時候我們希望只對部分成員變數進行序列化,如果用 @JsonIgnore ,會同時影響反序列化。這個時候我們可以用 @JsonView 註解指定某個視圖類的序列化結果包含該成員變數。

閱讀全文

與jackson工具類相關的資料

熱點內容
電腦設置刪除顯示找不到文件 瀏覽:454
中國證券app有哪些 瀏覽:890
天正施工圖教程 瀏覽:428
家庭網路有什麼 瀏覽:126
紅米升級系統找不到私密文件 瀏覽:557
360衛士文件功能描述 瀏覽:350
魅藍e2升級yunos 瀏覽:381
修改ipadID密碼 瀏覽:308
男生去哪裡學編程 瀏覽:772
膩子數據怎麼恢復 瀏覽:699
win10特殊配置文件登錄 瀏覽:55
可視電話電源網站封住了怎麼辦 瀏覽:811
如何列印word批註 瀏覽:152
qq在線表格換成word文件 瀏覽:138
word文檔里找不到文件這欄 瀏覽:969
如何塑造網站內容公信力 瀏覽:502
文件傳閱系統怎麼取消 瀏覽:392
蘋果付費app從哪裡扣費 瀏覽:496
我的咖啡廳快速升級 瀏覽:559
蘋果6手機國行怎麼辨別真假 瀏覽:999

友情鏈接