Converti JSON in Map in Java
-
Libreria
Jackson
per convertireJSON
inMap
in Java -
Libreria
GSON
per convertireJSON
inMap
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}}
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