Convertir une chaîne de caractères en objet JSON en Java

Rupam Yadav 12 octobre 2023
  1. Utilisez JSONObject pour convertir une chaîne de caractères en objet JSON en Java
  2. Utiliser Google Gson pour convertir une chaîne en objet JSON en Java
  3. Utilisez Jackson pour convertir une chaîne de caractères en objet JSON
Convertir une chaîne de caractères en objet JSON en Java

Dans ce tutoriel, nous allons discuter de la manière de convertir une chaîne de caractères en un objet JSON en Java. Nous disposons de différentes bibliothèques pour effectuer cette tâche.

Utilisez JSONObject pour convertir une chaîne de caractères en objet JSON en Java

JSONObject peut analyser une chaîne de caractères pour en faire un objet ressemblant à une carte. Il stocke des paires clé-valeur non ordonnées. La bibliothèque JSON-java, communément appelée org.json, est utilisée ici avec la dépendance requise de maven. La dépendance de maven que nous avons utilisée est donnée ci-dessous.

 <!-- https://mvnrepository.com/artifact/org.json/json -->
 <dependency>           
   <groupId>org.json</groupId>
   <artifactId>json</artifactId>
   <version>20201115</version>
 </dependency>

Pour analyser une chaîne JSON en JSONObject, nous passons la chaîne au constructeur comme indiqué ci-dessous.

import org.json.JSONException;
import org.json.JSONObject;

public class StringToJsonObject {
  public static void main(String[] args) {
    try {
      String str = "{\"name\":\"John\",\"age\":\"30\"}";
      JSONObject jsonObject = new JSONObject(str);
      System.out.println("OBJECT : " + jsonObject.toString());
    } catch (JSONException err) {
      System.out.println("Exception : " + err.toString());
    }
  }
}

Production :

OBJECT : {"age":"30","name":"John"}

Utiliser Google Gson pour convertir une chaîne en objet JSON en Java

Google Gson est une bibliothèque java permettant de sérialiser/désérialiser des objets Java vers JSON ou vice-versa. Elle peut également être utilisée pour convertir une chaîne de caractères Java en son équivalent en objet JSON.

La dépendance maven requise pour cette bibliothèque est donnée ci-dessous.

 <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
 </dependency>

Dans ce code, nous créons d’abord une instance de Gson en utilisant GsonBuilder en appelant sa méthode create(). Nous pouvons également activer divers paramètres de configuration sur builder. Comme montré ci-dessous, nous utilisons sa méthode setPrettyPrinting(). Comme son nom l’indique, cette méthode imprime la sortie JSON.

Plus tard, nous avons utilisé la méthode fromJson de l’objet Gson, qui analyse la chaîne JSON pour l’objet User. La méthode toJson() utilise Gson pour reconvertir l’objet User en chaîne JSON. Ainsi, la chaîne str est convertie en un objet JSON à l’aide de la bibliothèque Gson.

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonIOException;
public class StringToJsonObject {
  public static void main(String[] args) {
    try {
      String str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";

      GsonBuilder builder = new GsonBuilder();
      builder.setPrettyPrinting();
      Gson gson = builder.create();
      User user = gson.fromJson(str, User.class);

      System.out.println(user.ShowAsString());

      str = gson.toJson(user);
      System.out.println("User Object as string : " + str);

    } catch (JsonIOException err) {
      System.out.println("Exception : " + err.toString());
    }
  }
}

class User {
  public String name;
  public int age;
  public String place;
  public String ShowAsString() {
    return "User [" + name + ", " + age + ", " + place + "]";
  }
}

Production :

User[John, 21, Nevada] User Object as string : {
  "name" : "John", "age" : 21, "place" : "Nevada"
}

Utilisez Jackson pour convertir une chaîne de caractères en objet JSON

Jackson est également connu sous le nom de bibliothèque Java JSON. Le ObjectMapper est utilisé pour mapper JSON en objets Java ou les objets Java en JSON. La dépendance de maven utilisée pour cette bibliothèque est présentée ci-dessous.

 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.11.3</version>
  </dependency>

La Jackson a un modèle d’arbre intégré pour représenter l’objet JSON. JsonNode est la classe qui représente le modèle d’arbre. L’instance ObjectMapper mapper analyse JSON en un modèle d’arbre JsonNode appelant readTree().

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class StringToJsonObject {
  public static void main(String[] args) {
    String json_str = "{\"name\":\"John\", \"age\":21 , \"place\":\"Nevada\"}";
    ObjectMapper mapper = new ObjectMapper();
    try {
      JsonNode node = mapper.readTree(json_str);
      String name = node.get("name").asText();
      String place = node.get("age").asText();
      System.out.println("node" + node);
      System.out.println("name: " + name + ", place: " + place);
    } catch (JsonProcessingException e) {
      e.printStackTrace();
    }
  }
}

Production :

node{"name":"John","age":21,"place":"Nevada"}
name: John, place: 21
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java String

Article connexe - Java JSON