Bibliothèques Java JSON

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

JSON (JavaScript Object Notation) est un format léger d'échange de données. Il est facile à lire et à écrire et est largement utilisé pour l'échange de données entre client et serveur. Dans ce laboratoire, vous allez apprendre à utiliser les bibliothèques Java populaires pour le JSON, notamment Jackson, Gson, Genson et Json-io, pour sérialiser et désérialiser des objets au format JSON.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/serialization("Serialization") java/FileandIOManagementGroup -.-> java/io("IO") subgraph Lab Skills java/classes_objects -.-> lab-117768{{"Bibliothèques Java JSON"}} java/serialization -.-> lab-117768{{"Bibliothèques Java JSON"}} java/io -.-> lab-117768{{"Bibliothèques Java JSON"}} end

Configuration du projet

  1. Ouvrez le terminal et accédez au répertoire du projet en exécutant cd ~/projet.
  2. Créez un nouveau fichier Java pour ce laboratoire en exécutant la commande touch JsonLab.java dans le terminal et collez le code suivant :
import java.io.IOException;

public class JsonLab {
    public static void main(String[] args) throws IOException {
        ClassA classAObj = new ClassA("Demo", 20.0); // créer un objet pour le sérialiser et le désérialiser plus tard
    }

    // ajoutez la classe ClassA ici
}

Utilisation de la bibliothèque Jackson

  1. Pour travailler avec Jackson, nous devons ajouter la dépendance Maven de Jackson dans le fichier pom.xml :
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
</dependencies>
  1. Ensuite, nous devons sérialiser et désérialiser des objets en chaîne JSON en utilisant la classe ObjectMapper comme suit :
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    ObjectMapper objMapper = new ObjectMapper();
    ClassA classAObj = new ClassA("Demo", 20.0);

    // Sérialisation
    String jsonString = objMapper.writeValueAsString(classAObj);
    System.out.println("Chaîne sérialisée : " + jsonString);

    // Désérialisation
    ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
    System.out.print("Objet désérialisé : " + objFromStr.getField1() + " " + objFromStr.getField2());
  }
}

Utilisation de la bibliothèque Gson

  1. Pour travailler avec Gson, nous devons ajouter la dépendance Maven de Gson dans le fichier pom.xml :
<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
    </dependency>
</dependencies>
  1. Ensuite, nous devons sérialiser et désérialiser des objets en utilisant l'objet Gson comme suit :
import com.google.gson.Gson;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    Gson gson = new Gson();
    ClassA obj = new ClassA("Demo", 20.0);

    // Sérialisation
    String jsonStrFromObj = gson.toJson(obj);
    System.out.println("Chaîne sérialisée : " + jsonStrFromObj);

    // Désérialisation
    ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
    System.out.print("Objet désérialisé : " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Utilisation de la bibliothèque Genson

  1. Pour travailler avec Genson, nous devons ajouter la dépendance Maven de Genson dans le fichier pom.xml :
<dependencies>
    <dependency>
        <groupId>com.owlike</groupId>
        <artifactId>genson</artifactId>
        <version>${genson.version}</version>
    </dependency>
</dependencies>
  1. Ensuite, nous devons sérialiser et désérialiser des objets en utilisant l'objet Genson comme suit :
import com.owlike.genson.Genson;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    Genson genson = new Genson();
    ClassA obj = new ClassA("Demo", 20.0);

    // Sérialisation
    String jsonStrFromObj = genson.serialize(obj);
    System.out.println("Chaîne sérialisée : " + jsonStrFromObj);

    // Désérialisation
    ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
    System.out.print("Objet désérialisé : " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Utilisation de la bibliothèque Json-io

  1. Pour travailler avec la bibliothèque Json-io, nous devons ajouter la dépendance Maven de Json-io dans le fichier pom.xml :
<dependencies>
  <dependency>
    <groupId>com.cedarsoftware</groupId>
    <artifactId>json-io</artifactId>
    <version>${json-io.version}</version>
  </dependency>
</dependencies>
  1. Ensuite, nous devons sérialiser et désérialiser des objets en utilisant JsonWriter et JsonReader comme suit :
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    ClassA obj = new ClassA("Demo", 20.0);

    // Sérialisation
    String jsonStrFromObj = JsonWriter.objectToJson(obj);
    System.out.println("Chaîne sérialisée : " + jsonStrFromObj);

    // Désérialisation
    ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
    System.out.print("Objet désérialisé : " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Récapitulatif

Dans ce laboratoire, vous apprenez à utiliser diverses bibliothèques Java JSON pour convertir des objets au format JSON et vice versa. Nous avons appris à utiliser les bibliothèques Jackson, Gson, Genson et Json-io pour sérialiser et désérialiser des objets au format JSON.