2014-06-09 33 views
1

有沒有一種以便捷,易用,類型安全的方式表示Java中的JSON的好方法?以類型安全的方式在Java中表示JSON

我們一直在使用地圖,列表和圖元。這工作正常,除了我們必須添加大量的缺失值檢查。

傑克遜的處理問題的好辦法:

JsonNode node; 
// returns MissingNode if name not present, no null check required 
node.path("name").asText(); 

傑克遜的語法是在其他方面不舒服,雖然。他們的類不實現Map或List接口,並且JsonNode接口不可修改。

有沒有更好的方法?

+6

爲什麼不使用POJO並僅在需要時使用Jackson映射從/到json? –

+1

有一些JSON包在數組和對象上具有「getObject」,「getArray」和「getXxxType」方法,因此您不必投射。但是這對你並沒有多大的作用。傑克遜「asText」(或其他)的方法只是一個隱藏的演員。 –

+1

@ frant.hartm有一個很好的建議。將POJO與JsonCreator和JsonProperty註釋一起使用可以獲得非常乾淨的可讀代碼。對於你總是需要檢查缺失值的評論,你應該考慮使用JSR303進行驗證。 –

回答

0

只是爲了確保你意識到這一點:傑克遜可以綁定JSON /從Map很好,沒有問題:

Map<String,Object> map = new ObjectMapper().readValue(jsonSource, Map.class); 

,以及完整的POJO,像其他人一樣說:

POJO pojo = new ObjectMapper().readValue(jsonSource, POJO.class); 

所以雖然你當然可以使用JsonNode(又名樹模型),但還有其他方法通常更方便。

相關問題