2017-09-05 3 views
-3

je collection où je suis en mesure de convertir à une valeur JSONConversion d'une carte de hachage JSON dans Android

Map<String,String> mSizes 

Ici, je suis en train de convertir à JSON en utilisant et son travail

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

J'ai une autre collection

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

Ici, je je suis obtenir {}, Comment résoudre ce

+0

Copie possible de [Comment convertir hashmap en objet JSON en Java] (https://stackoverflow.com/questions/12155800/how-to-convert-hashmap-to-json-object-in-java) –

+0

Please fournir un [mcve]. –

Répondre

0

Vous pouvez utiliser cette

JSONObject mapToObject = new JSONObject(mSizes); 

Il ne peut fonctionner que pour le Map<String, String>

+0

référez-vous à celui-ci https://stackoverflow.com/questions/12155800/how-to-convert-hashmap-to-json-object-in-java – RajatN

0

que ce que vous faites mal est votre juste appeler la classe Gson vous avez appeler le GsonBuilder à la place.

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

Depuis quand avez-vous besoin du constructeur pour créer une instance 'Gson'? S'il vous plaît montrer des preuves que cela est nécessaire. –

+0

La classe principale à utiliser est ** Gson ** que vous pouvez simplement créer en appelant new Gson(). Il y a aussi une classe ** GsonBuilder ** disponible qui peut être utilisée pour créer une instance Gson avec divers paramètres comme le contrôle de version et ainsi de suite. En outre, GsonBuilder est utilisé lorsque nous devons effectuer une sérialisation et une désérialisation personnalisées. J'espère que vous pourrez répondre à votre question pour en savoir plus [link] (https://sites.google.com/site/gson/gson-user-guide) –

+0

Dans votre extrait de code, vous ne configurez pas ** de ** sérialisation personnalisée/désérialisation, il n'est donc pas clair pourquoi vous suggérez qu'ils utilisent le 'GsonBuilder' du tout. Votre réponse suggère également que c'est l'ensemble du problème, l'utilisation de 'Gson' au lieu de l'instancier à travers' GsonBuilder' qui est entièrement faux. –

0

Une autre façon de convertir une carte de JSON est

new JSONObject(map); 

Maintenant, votre question est sur la conversion

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

à JSON premier converti chaque carte msize à JSONObject puis carte

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

Espérons que cela aide.