2011-08-25 43 views
5

我有一個屬性如何反序列化空數組/列表?

@JsonProperty 
private Map<String, String> parameters = new HashMap<String, String>(); 

當我嘗試通過調用objectMapper.readValue(...),以deserialise一切工作正常,直到JSON的參數字段爲空,即。

"parameters":[] 

我得到這個例外...

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token 

如何處理空單?沒有我沒有任何控制JSON進來。

謝謝。

回答

4

你只能得到一個HashMap{},不[](你應該能夠得到一個ArrayList出來的就行)。

0

正如Chris提到的,你的JSON是錯誤的。但是如果你確實需要支持這個,你可以(也需要)創建一個自定義的反序列化器,並且爲已聲明的Map類型註冊 - 然後,自定義反序列化器可以接受數組(至少是空的,如果這些數組只是唯一的數組)可以遇到的種類)。