logo

Comment convertir une chaîne en objet JSON en Java ?

De nos jours, il est très courant de recevoir des données en Chaîne JSON au lieu de XML. Lorsque nous traitons de JSON String en Java, cela ne convertit pas le Chaîne JSON à Objet JSON . Mais utilisez le Chaîne JSON ce n’est toujours pas une bonne option car il est difficile d’y faire face. En raison de l'évolution et de la demande de la technologie, nous devons convertir une chaîne JSON en objet JSON pour récupérer des valeurs. pour résoudre ce problème, il existe des bibliothèques open source qui nous permettent de convertir la chaîne JSON en objet JSON. Dans cette section, nous avons expliqué comment convertir une chaîne JSON en objet JSON en détail avec exemple. Avant de passer au sujet principal, jetons un œil au format JSON.

 jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] } 

Le format JSON ci-dessus contient six attributs dont les deux premiers sont des chaînes, les trois suivants sont numériques et enfin un tableau JSON.

Convertir une chaîne JSON en objet JSON

Les trois bibliothèques suivantes sont utilisées pour convertir une chaîne en objet JSON en Java :

  • Utiliser la bibliothèque Gson
  • Utilisation de la bibliothèque simple JSON
  • Bibliothèque Jackson

Utiliser la bibliothèque Gson

Gson est un logiciel open source et riche Java bibliothèque fournie par Google. Il est utilisé pour convertir la chaîne JSON en objet JSON équivalent et l'objet JSON en chaîne JSON. La ligne de code suivante est utilisée pour convertir la chaîne JSON en objet JSON.

 Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class) 

Nous pouvons également convertir un objet JSON en chaîne JSON en utilisant le versJson() méthode.

 String str = g.toJson(p); 

Utilisation de la bibliothèque simple JSON

Il s'agit d'une autre bibliothèque Java open source utilisée pour convertir une chaîne JSON en objet JSON. L'avantage de la bibliothèque JSON-Simple est sa petite taille. C'est parfait là où l'environnement de contrainte de mémoire est important. Notez qu'il est également compatible avec JDK 1.2. Cela signifie que nous pouvons l'utiliser avec un projet existant qui n'est pas dans Java 5. Nous utilisons les instructions suivantes pour convertir la chaîne JSON en objet JSON.

 JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse); 

Utiliser la bibliothèque Jackson

La bibliothèque Jackson est une bibliothèque Java efficace et largement utilisée pour mapper des objets Java en JSON et vice-versa. Il est riche en fonctionnalités, rapide en performances et prend également en charge le streaming. Le flux peut analyser une sortie JSON volumineuse à partir de services Web sans la charger entièrement en mémoire. L'instruction suivante convertit la chaîne JSON représentant un étudiant en une classe Java représentant l'étudiant.

 Student student = new ObjectMapper().readValue(jsonString, Student.class); 

L'inconvénient de la bibliothèque Jackson est qu'elle nécessite au moins JDK 1.5. Par conséquent, si nous avons affaire à une ancienne version, elle n’y rentrera pas. Un autre inconvénient de la bibliothèque Jackson est qu'elle ne prend pas en charge J2ME.

Exemple de conversion de chaîne JSON en objet JSON

Dans le programme suivant, nous avons converti une chaîne JSON en objet JSON.

JsonStringToJsonObjectExample.java

 import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = &apos;[{&apos;No&apos;:&apos;17&apos;,&apos;Name&apos;:&apos;Andrew&apos;},{&apos;No&apos;:&apos;18&apos;,&apos;Name&apos;:&apos;Peter&apos;}, {&apos;No&apos;:&apos;19&apos;,&apos;Name&apos;:&apos;Tom&apos;}]&apos;; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let&apos;s see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>

Voyons un autre exemple.

JsonStringToJsonObjectExample2.java

arbre binaire de traversée par correspondance
 import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = &apos;{&apos;name&apos;: &apos;Sam Smith&apos;, &apos;technology&apos;: &apos;Python&apos;}&apos;; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString(&apos;technology&apos;); System.out.println(technology); } } 

Sortir:

 Sam Smith Python