1
我目前使用Jackson庫解編json到pojos,使用註釋。json與傑克遜的地圖平坦化
JSON的樹,我想解組如下:
{
"key1":"value1",
"key2":"value2",
"key3":{
"key31":{
"key311":"value311",
"key312":"value312",
"key313":"value313"
},
"key32":"value32"
},
"key4":"value4",
"key5":"value5",
"key6":{
"key61":"value61"
}
}
我不知道事先的JSON結構,並想將它完全壓扁到哪些內容是相當於地圖:
Map<String, Object> outputMap = new HashMap<String, Object>();
outputMap.put("key1", "value1");
outputMap.put("key2", "value2");
outputMap.put("key311", "value311");
outputMap.put("key312", "value312");
outputMap.put("key313", "value313");
outputMap.put("key32", "value32");
outputMap.put("key4", "value4");
outputMap.put("key5", "value5");
outputMap.put("key61", "value61");
(注意鍵 「KEY3」, 「key31」 和 「鍵6」 應該被忽略)
使用註釋@JsonAnySetter
,我可以創造一個functi用所有頂級原子填充地圖,但該方法也會捕獲有孩子的節點(當值爲Map時)。從這一點來說,我當然可以自己寫孩子的簡單遞歸,但是我希望通過使用庫中的一個設施(註釋,配置)來自動處理這個部分(以優雅的方式)等),而不必自己編寫遞歸。
注意:我們假設在不同的關卡中沒有名稱衝突。