Converti JSON in Map in Java

Rupam Yadav 12 ottobre 2023
  1. Libreria Jackson per convertire JSON in Map in Java
  2. Libreria GSON per convertire JSON in Map in Java
Converti JSON in Map in Java

Introdurremo come convertire un JSON esistente in una mappa in Java. JSON viene spesso utilizzato per strutturare i dati, ma a volte dobbiamo inserire i valori JSON in un altro tipo di dati e poi lavorarci sopra.

Vengono create diverse librerie per funzionare con JSON in Java. Vedremo le due librerie di analisi JSON più utilizzate che ci consentono di eseguire molte operazioni JSON.

Di seguito è riportato il JSON su cui lavoreremo in questo tutorial per una migliore comprensione.

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

Libreria Jackson per convertire JSON in Map in Java

Dobbiamo includere la seguente dipendenza nel nostro progetto in modo che i metodi e le classi della libreria Jackson possano essere ereditati.

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

Dopo aver aggiunto la dipendenza, otterremo prima il file JSON locale utilizzando il metodo FileInputStream(),

Dobbiamo chiamare ObjectMapper().readValue() dalla libreria Jackson per convertire il nostro JSON in Map. La funzione readValue(JSON, ClassType) accetta due argomenti, il JSON e il ClassType che vogliamo che venga formattato il JSON. Dato che vogliamo convertire il formato JSON in Mappa, useremo 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);
  }
}

Produzione:

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

Libreria GSON per convertire JSON in Map in Java

Innanzitutto, dobbiamo includere la dipendenza del nostro progetto per includere tutti i metodi e le classi GSON nella nostra applicazione.

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

GSON è una libreria JSON ampiamente utilizzata che analizzeremo e convertiremo in Java Map.

Gson().fromJson(json, type) si aspetta due argomenti, uno dei quali è il file JSON che possiamo ottenere usando new JsonReader(new FileReader(jsonFilePath)) e il secondo argomento è il tipo che vogliamo il JSON in cui convertire.

Dai un’occhiata all’esempio di seguito.

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);
  }
}

Produzione:

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

Articolo correlato - Java JSON

Articolo correlato - Java Map