116 votes

Convertir une chaîne JSON en objet en Java?

Existe-t-il un moyen dans Java / J2ME de convertir une chaîne, telle que:

 {name:"MyNode", width:200, height:100}
 

à une représentation d'objet interne du même, dans une ligne de code?

Parce que la méthode actuelle est trop fastidieuse:

 Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
 

Peut-être une bibliothèque JSON?

108voto

ZZ Coder Points 36990

J'en ai utilisé quelques-uns et mon préféré est,

http://code.google.com/p/json-simple/

La bibliothèque est très petite, elle est donc parfaite pour J2ME.

Vous pouvez analyser JSON en objet Java dans une ligne comme celle-ci,

 JSONObject json = (JSONObject)new JSONParser().parse("{\"name\":\"MyNode\", \"width\":200, \"height\":100}");
System.out.println("name=" + json.get("name"));
System.out.println("width=" + json.get("width"));
 

79voto

StaxMan Points 34626

L’option la plus simple est Jackson :

 MyObject ob = new ObjectMapper().readValue(jsonString, MyObject.class);
 

Il existe d'autres bibliothèques simples à utiliser (Gson a déjà été mentionné); mais certains choix sont plus laborieux, comme la bibliothèque originale org.json, qui nécessite de créer un "JSONObject" intermédiaire même si vous n'en avez pas besoin.

61voto

Alok Points 426

GSON est une bonne option pour convertir un objet java en objet json et vice versa.
C'est un outil fourni par google.

pour convertir json en objet java: fromJson(jsonObject,javaclassname.class)
pour convertir un objet java en objet json: toJson(javaObject)
et le repos se fera automatiquement

Pour plus d'informations et pour le téléchargement: http://code.google.com/p/google-gson/

23voto

sufinawaz Points 576

Vous pouvez le faire facilement avec Google GSON.

Disons que vous avez une classe appelée Utilisateur avec les champs utilisateur, la largeur et la hauteur que vous souhaitez convertir les suivantes chaîne json à l'Utilisateur de l'objet.

{"name":"MyNode", "width":200, "height":100}

Vous pouvez le faire facilement, sans avoir à lancer (en gardant nimcap commentaire à l'esprit ;) ), avec le code suivant:

Gson gson = new Gson(); 
final User user = gson.fromJson(jsonString, User.class);

Où jsonString est au-dessus de la Chaîne JSON.

Pour plus d'informations, veuillez consulter https://code.google.com/p/google-gson/

22voto

voyager Points 17283

Vous avez beaucoup de JSON analyseurs pour Java:

  • JSONObject.java
    Un JSONObject est une collection non ordonnée de paires nom/valeur. Sa forme extérieure est une chaîne enveloppé dans des accolades avec des virgules entre les noms et les valeurs, et les virgules entre les valeurs et les noms. La forme interne est un objet ayant get() et opt() les méthodes d'accès aux valeurs par nom, et put() méthodes pour ajouter ou de remplacer les valeurs par nom. Les valeurs peuvent être un de ces types: Boolean, JSONArray, JSONObject, du Nombre et de la Ficelle ou de la JSONObject.L'objet NULL.

  • JSONArray.java
    Un JSONArray est une séquence ordonnée de valeurs. Sa forme extérieure est une chaîne enveloppé dans des crochets avec des virgules entre les valeurs. La forme interne est un objet ayant get() et opt() les méthodes d'accès aux valeurs par index, et put() les méthodes d'ajout ou de remplacement des valeurs. Les valeurs peuvent être un de ces types: Boolean, JSONArray, JSONObject, du Nombre et de la Ficelle ou de la JSONObject.L'objet NULL.

  • JSONStringer.java
    Un JSONStringer est un outil rapide de la production de JSON texte.

  • JSONWriter.java
    Un JSONWriter est un outil rapide de l'écriture de texte JSON pour les cours d'eau.

  • JSONTokener.java
    Un JSONTokener prend une chaîne source et extrait les caractères et les jetons. Il est utilisé par le JSONObject et JSONArray constructeurs de parser JSON source de chaînes.

  • JSONException.java
    Un JSONException est levée lorsqu'une syntaxe ou de procédure, l'erreur est détectée.

  • JSONString.java
    Le JSONString est une interface qui permet à des classes pour mettre en œuvre leur sérialisation JSON.

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