17
我使用的是Jackson 2.2.3,需要將JsonNode樹轉換爲帶有排序字段鍵的字符串。我完全不清楚如何做到這一點,特別是因爲相反如此簡單 - JsonNode jn = ObjectMapper.readTree(String s)
。Jackson JsonNode用已排序的鍵字符串
看來正確的方法是void writeTree(JsonGenerator jgen,JsonNode rootNode)
。但是,我看不到從JsonGenerator
獲得序列號String
的方法。我認爲SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS
仍然適用,因爲JsonGenerator.Feature
s沒有這個選項。有沒有更簡單的方法來做到這一點 - 或者,如果沒有,我如何從JsonGenerator
檢索序列化的字符串?
有沒有辦法對JSON中的數組進行排序呢?如果你有json數組,那麼這個解決方案不起作用:'{id:1,collection:[z,y]}'如果bacame'{collection:[z,y],id:1} *根本沒有訂購! :( – Cherry
@Cherry在序列化之前通常需要對數組進行排序,傑克遜需要對地圖進行排序的原因是因爲地圖沒有固有的排序方式,所以應用程序可以在序列化爲JSON之前根據需要對數組進行排序。對於地圖來說是不可能的(一般來說)。 – elhefe