Wie man JSON in Map in Java konvertiert

Rupam Yadav 12 Oktober 2023
  1. Jackson-Bibliothek zur Konvertierung von JSON in eine Map in Java
  2. GSON Bibliothek zur Konvertierung von JSON nach Map in Java
Wie man JSON in Map in Java konvertiert

Wir stellen vor, wie man ein vorhandenes JSON in eine Map in Java konvertiert. JSON wird oft zur Strukturierung der Daten verwendet, aber manchmal müssen wir die JSON-Werte in einen anderen Datentyp bringen und dann daran arbeiten.

Für die Arbeit mit JSON in Java werden mehrere Bibliotheken erstellt. Wir werden die beiden am häufigsten verwendeten JSON-Parsing-Bibliotheken sehen, die es uns ermöglichen, viele JSON-Operationen durchzuführen.

Nachfolgend finden Sie die JSON-Bibliotheken, an denen wir in diesem Tutorial zum besseren Verständnis arbeiten werden.

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

Jackson-Bibliothek zur Konvertierung von JSON in eine Map in Java

Wir müssen die untenstehende Abhängigkeit in unser Projekt aufnehmen, damit die Methoden und Klassen der Jackson-Bibliothek vererbt werden können.

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

Nachdem wir die Abhängigkeit hinzugefügt haben, werden wir zuerst die lokale JSON-Datei mit der Methode FileInputStream() erhalten,

Wir müssen ObjectMapper().readValue() aus der Jackson-Bibliothek aufrufen, um unseren JSON in Map zu konvertieren. Die Funktion readValue(JSON, ClassType) benötigt zwei Argumente, das JSON und den ClassType, die wir für die Formatierung des JSON benötigen. Da wir JSON in das Map-Format umwandeln wollen, werden wir Hashmap.class verwenden.

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

Ausgabe:

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

GSON Bibliothek zur Konvertierung von JSON nach Map in Java

Zuerst müssen wir die Abhängigkeit unseres Projekts einbeziehen, um alle GSON-Methoden und -Klassen in unseren Antrag aufzunehmen.

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

GSON ist eine weit verbreitete JSON-Bibliothek, die wir parsen und in Java Map konvertieren werden.

Gson().fromJson(json, type) erwartet zwei Argumente, von denen eines die JSON-Datei ist, die wir mit new JsonReader(new FileReader(jsonFilePath)) erhalten können, und das zweite Argument ist der Typ, in den wir das JSON konvertieren wollen.

Sehen Sie sich das folgende Beispiel an.

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

Ausgabe:

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

Verwandter Artikel - Java JSON

Verwandter Artikel - Java Map