Comment convertir JSON en carte en Java

Rupam Yadav 12 octobre 2023
  1. Bibliothèque Jackson pour convertir un JSON en Map en Java
  2. Bibliothèque GSON pour convertir JSON en Map en Java
Comment convertir JSON en carte en Java

Nous présenterons comment convertir un JSON existant en une Map en Java. JSON est souvent utilisé pour structurer les données, mais parfois nous devons obtenir les valeurs JSON dans un autre type de données et ensuite travailler dessus.

Plusieurs bibliothèques sont créées pour travailler avec JSON en Java. Nous verrons les deux bibliothèques d’analyse JSON les plus utilisées qui nous permettent d’effectuer de nombreuses opérations JSON.

Pour une meilleure compréhension, voici la JSON sur laquelle nous allons travailler dans ce tutoriel.

{
  "login" :
  {
    "userName" : "John Doe",
    "email" : "johndoe@john.com"
  }
}

Bibliothèque Jackson pour convertir un JSON en Map en Java

Nous devons inclure la dépendance ci-dessous dans notre projet afin que les méthodes et les classes de la bibliothèque Jackson puissent être héritées.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.2</version>
    <scope>compile</scope>
</dependency>

Après avoir ajouté la dépendance, nous allons d’abord obtenir le fichier JSON local en utilisant la méthode FileInputStream(),

Nous devons appeler ObjectMapper().readValue() de la bibliothèque Jackson pour convertir notre JSON en Map. La fonction readValue(JSON, ClassType) prend deux arguments, le JSON et le ClassType que nous voulons que le JSON soit formaté. Comme nous voulons convertir le JSON au format Map, nous utiliserons Hashmap.class.

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;

public class Main {
  public static void main(String[] args) throws IOException {
    InputStream getLocalJsonFile = new FileInputStream("/sample.json");

    HashMap<String, Object> jsonMap = new ObjectMapper().readValue(getLocalJsonFile, HashMap.class);
    System.out.println(jsonMap);
  }
}

Production:

{login={userName=John Doe, email=johndoe@john.com}}

Bibliothèque GSON pour convertir JSON en Map en Java

Premièrement, nous devons inclure la dépendance de notre projet pour inclure toutes les méthodes et classes de GSON dans notre demande.

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

GSON est une bibliothèque JSON largement utilisée que nous allons analyser et convertir en Java Map.

Gson().fromJson(json, type) attend deux arguments, dont l’un est le fichier JSON que nous pouvons obtenir en utilisant new JsonReader(new FileReader(jsonFilePath)) et le second argument est le type vers lequel nous voulons que le JSON soit converti.

Regardez l’exemple ci-dessous.

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Map;

public class Main {
  public static void main(String[] args) throws IOException {
    JsonReader getLocalJsonFile = new JsonReader(new FileReader("/sample.json"));

    Type mapTokenType = new TypeToken<Map<String, Map>>() {}.getType();

    Map<String, String[]> jsonMap = new Gson().fromJson(getLocalJsonFile, mapTokenType);

    System.out.println(jsonMap);
  }
}

Production:

{login={userName=John Doe, email=johndoe@john.com}}
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 JSON

Article connexe - Java Map