2015-05-14 66 views
2

我試圖將Java Map(使用MyClass值列表)轉換爲使用gson的json。使用Gson將複雜的Java地圖轉換爲Json

Map<Integer, List<MyClass>> myMap 

這裏是我正在做它...

Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create(); 
String json = gson.toJson(myMap); 
System.out.println(json); 

它產生的JSON接近,但不是在格式我希望/希望。以下是生產:

{ 「0」:[{MyClassItem1},{MyClassItem2},等], 「1」:[{MyClassItem3},{ } MyClassItem4,等],等等。 }

我期望/喜歡它產生:

[{ 「0」:[{MyClassItem1},{MyClassItem2}等]},{ 「1」:[{MyClassItem3} {MyClassItem4}等]}等等]

這可能嗎?如果是這樣,怎麼樣?

回答

0

那麼...... Gson將數據序列化爲最合適的形式。看來你想要一個Map.Entry的數組。嘗試這樣的:

Map<Integer, List<MyClass>> myMap = ...; 
Set<Map.Entry<Integer, List<MyClass>>> entrySet = myMap.entrySet(); 
Object[] data = entrySet.toArray(new Object[entrySet.size()]); 

// serialize data variable 

但請注意,Gson可能無法序列化Map.Entry開箱即用。

相關問題