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.
Configuration du projet
- Ouvrez le terminal et accédez au répertoire du projet en exécutant
cd ~/projet. - Créez un nouveau fichier Java pour ce laboratoire en exécutant la commande
touch JsonLab.javadans 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
- 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>
- Ensuite, nous devons sérialiser et désérialiser des objets en chaîne JSON en utilisant la classe
ObjectMappercomme 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
- 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>
- Ensuite, nous devons sérialiser et désérialiser des objets en utilisant l'objet
Gsoncomme 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
- 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>
- Ensuite, nous devons sérialiser et désérialiser des objets en utilisant l'objet
Gensoncomme 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
- 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>
- Ensuite, nous devons sérialiser et désérialiser des objets en utilisant
JsonWriteretJsonReadercomme 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ésumé
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.



