388 votes

Comment convertir hashmap en objet json en java

Comment convertir ou convertir hashmap en objet json en java et convertir à nouveau l'objet json en chaîne json, est-ce que quelqu'un peut dire comment faire?

544voto

Ankur Points 4371

utilisation

  new JSONObject(map);
 

D'autres fonctions que vous pouvez obtenir dans la documentation http://www.json.org/javadoc/org/json/JSONObject.html

216voto

rama Points 171

Gson peut également être utilisé pour sérialiser des objets arbitrairement complexes.

Voici comment vous l'utilisez:

 Gson gson = new Gson(); 
String json = gson.toJson(myObject); 
 

Gson convertira automatiquement les collections en tableaux JSON . Gson peut sérialiser les champs privés et ignore automatiquement les champs transitoires.

68voto

Mohammod Hossain Points 2403

Exemple utilisant json

 Map<String, Object> data = new HashMap<String, Object>();
    data.put( "name", "Mars" );
    data.put( "age", 32 );
    data.put( "city", "NY" );
    JSONObject json = new JSONObject();
    json.putAll( data );
    System.out.printf( "JSON: %s", json.toString(2) );
 

sortie::

 JSON: {
  "age": 32,
  "name": "Mars",
  "city": "NY"
}
 

Vous pouvez également essayer d'utiliser le GSON de Google. Le GSON de Google est la meilleure bibliothèque disponible pour convertir les objets Java en leur représentation JSON.

http://code.google.com/p/google-gson/

7voto

Whome Points 2303

La fin de la partie, mais voici mes GSON adhoc écrivain pour la sérialisation de table de hachage. J'ai dû écrire une carte de paires clé-valeur json attributs de la chaîne, s'attendre à une spécifiques pour être de type entier. Je n'ai pas envie de créer des JavaBean wrapper pour ce simple cas d'utilisation.

GSON JsonWriter classe est facile à utiliser sérialiseur classe contenant quelques fortement typé écrivain.valeur ().

// write Map as JSON document to http servlet response
Map<String,String> sd = DAO.getSD(123);
res.setContentType("application/json; charset=UTF-8");
res.setCharacterEncoding("UTF-8");
JsonWriter writer = new JsonWriter(new OutputStreamWriter(res.getOutputStream(), "UTF-8"));
writer.beginObject();
for(String key : sd.keySet()) {
    String val = sd.get(key);
    writer.name(key);
    if (key.equals("UniqueID") && val!=null)
        writer.value(Long.parseLong(val));
    else
        writer.value(val);
}
writer.endObject();
writer.close();

Si aucun des types personnalisés être nécessaire, j'aurais pu utiliser la méthode toJson() fonction. gson-2.2.4.jar la bibliothèque est un peu moins de 190 KO, sans aucun brutale des dépendances. Facile à utiliser sur tous les servlet application ou de l'application autonome sans grand cadre des intégrations.

Gson gson = new Gson(); 
String json = gson.toJson(myMap); 

7voto

jolivier Points 2269

C’est généralement le travail d’une bibliothèque Json; vous ne devriez pas essayer de le faire vous-même, voir Une meilleure bibliothèque JSON Java? pour des exemples de bibliothèques Json, ils feront tous ce que vous demandez (en particulier json.org ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X