2016-05-13 47 views
0

我不知道傑克遜如何反序列化。我有一個JSON,只需要某些部分。傑克遜在兩個位置反序列化的表現與反序列化整個json

ObjectMapper mapper = new ObjectMapper(); 

將如何表現有所不同:

mapper.readerFor(Integer.class).at("/code").readValue(inputStream); 
mapper.reset();  
mapper.readerFor(MyClass[].class).at("/level1/level2").readValue(inputStream); 

VS

讀取整個JSON:

mapper.readValue(inputStream, Map.class); 

回答

1

由於按鍵的順序在一個JSON對象是不固定的有沒有方法來知道輸入流中需要的鍵的存在位置。

在最壞的情況下,如果所需密鑰是最後一個,則必須解析整個流。平均而言,當閱讀單個鍵時,可能會提高性能,但基準測試是找出所用數據的絕對方法。