Jackson經過反射將Json轉化爲java對象

Jackson的功能比較強大,咱們這裏主要使用Data Binding的方式,來看看如何使用反射將json轉化爲java bean,先加入以下依賴:java

Jackson 的核心模塊由三部分組成。json

  • jackson-core,核心包,提供基於"流模式"解析的相關 API,它包括 JsonPaser 和 JsonGenerator。 Jackson 內部實現正是經過高性能的流模式 API 的 JsonGenerator 和 JsonParser 來生成和解析 json。
  • jackson-annotations,註解包,提供標準註解功能;
  • jackson-databind ,數據綁定包, 提供基於"對象綁定" 解析的相關 API ( ObjectMapper ) 和"樹模型" 解析的相關 API (JsonNode);基於"對象綁定" 解析的 API 和"樹模型"解析的 API 依賴基於"流模式"解析的 API。

而後咱們就能夠寫個demo看看:app

輸出:性能

入參都是相似的,傳入json字符串和須要轉化爲的class,而後看看裏面的方法是怎麼處理的,以前還有不少預處理的方法,直接跳過吧,主要看看裏面的解析的。先用createUsingDefault(DeserializationContext ctxt)返回一個使用默認構造方法建立的對象。.net

這裏對於json的處理都放在JsonParser中,這裏獲取相應的類中的變量,而後使用deserializeAndSet方法設置值,如今以爲反射真是一個好東西呀,否則都很差處理,尤爲是不知道都是什麼類對象的狀況,固然這裏只是簡單類對象的狀況,複雜的後續再看看。對象

這裏最後調用的_setter.invoke(instance, value)來設置變量值。blog

後續還會有一些檢查,未完待續!字符串

參考:http://www.javashuo.com/article/p-xulepded-ko.htmlget

相關文章
相關標籤/搜索