2017-09-05 56 views
-3

我有收集我在哪裏能轉換成JSON值轉換哈希映射到JSON在Android的

Map<String,String> mSizes 

在這裏,我將使用以JSON及其工作

Gson gson = new Gson(); 
mStruct = gson.toJson(mSizes); 

我有另一個集合

Map<String,Map<String,String>> mSizesNested; 
Gson gson = new Gson(); 
mStruct = gson.toJson(mSizesNested); 

這裏我我得到{},如何解決這個

+0

可能的重複[如何將hashmap轉換爲Java中的JSON對象](https://stackoverflow.com/questions/12155800/how-to-convert-hashmap-to-json-object-in-java) –

+0

請提供[mcve]。 –

回答

0

您可以使用此

JSONObject mapToObject = new JSONObject(mSizes); 

它可以爲Map<String, String>

+0

參考這一個https://stackoverflow.com/questions/12155800/how-to-convert-hashmap-to-json-object-in-java – RajatN

0

只工作只有這個你做錯了,是你剛纔打電話給你有GSON類調用GsonBuilder代替。

Gson gson = new GsonBuilder().create(); 
String json = gson.toJson(mSizesNested); 
+0

從什麼時候你需要建設者來創建一個'Gson'實例?請出示一些證據證明這是必要的。 –

+0

要使用的主要類是** Gson **,您可以通過調用新的Gson()來創建它。還有一個類** GsonBuilder **,可用於創建具有各種設置(如版本控制等)的Gson實例。 此外,當我們需要進行自定義序列化和反序列化時,使用GsonBuilder。 希望回答你的問題更多[鏈接](https://sites.google.com/site/gson/gson-user-guide) –

+0

在你的代碼片段中,你沒有配置任何**自定義序列化/反序列化,所以目前還不清楚爲什麼你建議他們使用'GsonBuilder'。你的回答也表明這是整個問題,使用'Gson'而不是通過'GsonBuilder'實例化它,這完全是錯誤的。 –

0

轉換映射到JSON 的另一種方式是

new JSONObject(map); 

現在你的問題是關於轉換

Map<String,Map<String,String>> mSizesNested; 

到JSON 第一轉換每MSIZE地圖的JSONObject 然後地圖

Map<String,Map<String,jsonobject.toString>> mSizesNested;

希望這會有所幫助。