Umgang mit JSON-Arrays in Java

Mohd Mohtashim Nawaz 12 Oktober 2023
  1. Umgang mit JSON-Arrays in Java
  2. JSON-Objekte und JSON-Arrays in Java
  3. Verwenden Sie die integrierten Bibliotheken von Java, um ein JSON-Array in Java zu lesen
  4. Fazit
Umgang mit JSON-Arrays in Java

JSON ist ein beliebtes und weit verbreitetes Datenaustauschformat unter Entwicklern und Organisationen. Der Begriff JSON steht für JavaScript Object Notation.

Es ist ein leichtgewichtiges, lesbares und textbasiertes Framework, das speziell entwickelt wurde, um den Datenaustausch im menschenlesbaren Format zu erleichtern. JSON ist ein offenes Standardformat, d. h. es kann überall ohne besondere Anforderungen verwendet werden.

Darüber hinaus wird JSON von den meisten Programmiersprachen unterstützt. Sie sind vielleicht auf JSON gestoßen, wenn Sie jemals als Projektentwickler gearbeitet haben, der einen Datenaustausch erfordert.

Beispielsweise verwenden wir häufig JSON-Objekte, um Daten von einem Server zu einer mobilen Anwendung und umgekehrt zu übertragen. Dieser Artikel wird die JSON-Grundlagen verstehen, wie die Struktur von JSON, Datentypen, JSON-Objekte, JSON-Arrays usw.

Wir werden auch verstehen, wie man mit JSON in Java arbeitet. Am Ende stellt dieser Artikel einen Beispielcode zur Handhabung von JSON in Java bereit.

Umgang mit JSON-Arrays in Java

JSON ist ein sehr flexibles und leichtgewichtiges Framework für den Informationsaustausch, in dem wir Objekte und Datentypen verwenden, um Informationen zu erstellen und zu teilen.

In JSON werden Daten als Schlüssel-Wert-Paare dargestellt, wobei der Schlüssel speziell eine Zeichenfolge ist, während der Wert jeder von JSON unterstützte Datentyp sein kann.

JSON unterstützt die folgenden Datentypen.

  1. Zeichenfolge
  2. Nummer
  3. Boolesch
  4. Null

Zusätzlich zu diesen grundlegenden JSON-Datentypen können wir auch JSON-Arrays und JSON-Objekte als Wert in einem Schlüssel-Wert-Paar verwenden.

Außerdem werden wir in diesem Artikel mehr über Arrays und Objekte erfahren. Aber vorher schauen wir uns die Funktionen von JSON an.

Einige der herausragenden Eigenschaften von JSON sind wie folgt.

  1. JSON ist sehr einfach. Sie müssen keine zusätzlichen Anstrengungen unternehmen, um JSON zu verstehen und zu verwenden.
  2. JSON ist leicht verständlich und selbstbeschreibend. Wenn Sie sich ein JSON-Objekt ansehen, können Sie leicht verstehen, was es vermitteln soll.
  3. JSON ist sprachunabhängig. Diese Funktion hat sich als wesentlicher Faktor für die breite Akzeptanz von JSON erwiesen. Mit Hilfe von Bibliotheken und einfachen Codes können wir in fast jeder Sprache mit JSON arbeiten.
  4. JSON ist schneller als XML. Dies ist ein weiterer Grund für die breite Verwendung.

JSON-Objekte und JSON-Arrays in Java

Bevor wir lernen, JSON-Objekte und -Arrays in Java zu verwenden, müssen wir die JSON-Objekte und JSON-Arrays verstehen.

JSON-Objekte sind dem Dictionary-Datentyp sehr ähnlich, bei dem die Daten als Schlüssel-Wert-Paare gespeichert werden. Der Schlüssel in diesem Schlüssel-Wert-Paar sollte eine Zeichenfolge sein, während der Wert ein Objekt, ein Array oder ein anderer unterstützter Datentyp sein kann.

Wir müssen einen Schlüssel und einen Wert durch einen Doppelpunkt : und jedes Schlüssel-Wert-Paar durch ein Komma , trennen. Ein JSON-Objekt wird durch geschweifte Klammern {} dargestellt.

Wir können beliebig komplexe JSON-Objekte erstellen, indem wir Objekte und Arrays in unsere JSON-Objekte verschachteln. Es wird als hierarchisches JSON-Objekt bezeichnet.

Hier ist ein Beispiel für ein JSON-Objekt, das die Details eines Schülers darstellt.

{"name": "Roger", "Roll": 22, "Class": "XI"}

Beachten Sie, dass wir die Zeichenfolgenwerte mit doppelt konvertierten Kommas in Anführungszeichen gesetzt haben, während Zahlen nicht in Anführungszeichen gesetzt werden müssen.

Wir haben gerade JSON-Objekte besprochen, die einem Wörterbuch ähneln. Andererseits ähneln JSON-Arrays Listen.

Wir schließen Objekte in einer Liste in eckige Klammern [] ein. Ein JSON-Array kann jeden unterstützten Datentyp enthalten, einschließlich eines anderen Arrays oder eines JSON-Objekts.

Hier ist ein Beispiel für ein JSON-Array.

[1, "abc", {"name":"xyz"}]

Beachten Sie, dass das obige JSON-Array eine Zahl, eine Zeichenfolge und ein Objekt enthält. Das bedeutet, dass wir verschiedene Datentypen in einem Array speichern können.

Verwenden Sie die integrierten Bibliotheken von Java, um ein JSON-Array in Java zu lesen

Java ist eine mächtige Sprache mit einer großen Anzahl von Bibliotheken. Glücklicherweise haben wir integrierte Bibliotheken zum Lesen von JSON-Objekten und -Arrays in Java.

Solche Bibliotheken erleichtern unsere Arbeit und vereinfachen das Parsen und Lesen von JSON-Objekten und -Arrays. Weiter in diesem Artikel werden wir lernen, solche Bibliotheken im Code zu verwenden, um das JSON-Objekt und das JSON-Array in Java zu lesen.

Bevor wir mit dem Code fortfahren, erstellen wir ein JSON-Objekt und speichern es in einer Datei. Beachten Sie, dass eine JSON-Datei die Endung .json hat.

Wenn Sie also den Code testen und ausführen möchten, kopieren und fügen Sie den folgenden JSON-Code ein und speichern Sie die Datei mit der Endung .json an einem beliebigen Ort. Der JSON-Code ist unten angegeben.

[{
	"name":"MMN",
	"roll": 24,
	"marks": [91, 95, 97, 97, 94],
	"parents": {
	"name": "IMT",
	"mobile":"1234567890"
	},
	"hobbies": ["sports", "reading", "music"],
	"others": ["A", 1]
}]

Beachten Sie, dass diese JSON-Datei ein JSON-Array mit einem einzelnen JSON-Objekt enthält. Dieses innere JSON-Objekt enthält dann mehrere Schlüssel-Wert-Paare mit unterschiedlichen Datentypen.

Zum Beispiel ist name ein String, roll ist eine ganze Zahl (beachten Sie, dass JSON ganze Zahlen als lange ganze Zahlen speichert), marks ist ein JSON-Array, parents ist ein weiteres JSON-Objekt und so weiter. Daher ist dies ein Beispiel für beliebig komplexe JSON-Daten.

Lassen Sie uns verstehen, wie wir ein solches JSON-Objekt mit Java lesen können.

Bevor Sie den Code schreiben, müssen Sie sicherstellen, dass Sie die JSON-JAR-Datei heruntergeladen und die classpath-Variable hinzugefügt haben, die auf diese JSON-Datei verweist. Wenn Sie dies nicht tun, wird JSON nicht kompiliert.

Wir können eine JSON-Datei genauso öffnen wie jede andere Datei in Java, im Wesentlichen durch die Verwendung des Konstruktors File().

Wir müssen die Anweisung zum Öffnen der Datei mit einem try-catch-Block umgeben, um die notwendige Ausnahme zu behandeln, die der Konstruktor auslöst.

Sobald die Datei geöffnet ist, wird ihr Objekt an den Konstruktor FileReader() übergeben.

Wir verwenden einen JSON-Parser, der ein Java-Objekt zurückgibt, um den JSON-Inhalt zu analysieren. Wir sollten eine explizite Umwandlung verwenden, um ein JSON-Array umzuwandeln.

Unser JSON-Array enthält ein einzelnes Objekt, aber in einigen Fällen haben wir möglicherweise mehrere JSON-Objekte in einem JSON-Array, also sollten wir das geparste Array mit einer Schleife durchlaufen. Wir extrahieren jedes JSON-Objekt aus dem geparsten JSON-Array und verarbeiten es weiter.

Beachten Sie, dass wir die JSON-Objektstruktur kennen sollten, die wir iterieren, da wir die Werte in einem JSON-Objekt mithilfe des Schlüssels extrahieren müssen.

Außerdem extrahieren wir die Daten aus dem JSON-Objekt, indem wir sie an eine Funktion übergeben, die benannte Schlüssel verwendet. Da das JSON-Objekt verschiedene Datentypen enthält, kann jeder entsprechend behandelt werden.

Zum Beispiel haben wir die Ganzzahl, den String und das Array angezeigt, aber das verschachtelte JSON-Objekt parents iteriert. Der folgende Code implementiert die erläuterte Logik.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JSONReader {
  public static void main(String[] args) {
    JSONParser parser = new JSONParser();
    FileReader fileReader;
    try {
      File file = new File("/home/stark/eclipse-workspace-java/Aditya/src/data.json");
      fileReader = new FileReader(file);
      // Parser returns an object, we need an explicit cast to covert it into a JSONArray
      JSONArray array = (JSONArray) parser.parse(fileReader);

      // Traverse the list
      for (int i = 0; i < array.size(); i++) {
        JSONObject obj = (JSONObject) array.get(i);
        parseObject(obj);
      }

    }

    catch (FileNotFoundException e) {
      System.out.println(e.getStackTrace() + " :File Not Found");
    } catch (ParseException e) {
      System.out.println(e.getStackTrace() + " :Could not parse");
    } catch (IOException e) {
      System.out.println(e.getStackTrace() + " :IOException");
    }
  }

  private static void parseObject(JSONObject obj) {
    String name = (String) obj.get("name");
    long roll = (long) obj.get("roll");
    JSONArray marks = (JSONArray) obj.get("marks");
    JSONArray hobbies = (JSONArray) obj.get("hobbies");
    JSONObject parents = (JSONObject) obj.get("parents");
    JSONArray others = (JSONArray) obj.get("others");

    System.out.println("Name: " + name);
    System.out.println("Roll: " + roll);
    System.out.println("Marks: " + marks);
    System.out.println("Hobbies: " + hobbies);
    System.out.println(
        "Parent's Name: " + parents.get("name") + ", Mobile: " + parents.get("mobile"));
    System.out.println("Others: " + others);
  }
}

Sie sollten den korrekten Pfad der Datei im Konstruktor File() angeben. Die Ausgabe des obigen Codes ist unten.

Name: MMN
Roll: 24
Marks: [91,95,97,97,94]
Hobbies: ["sports","reading","music"]
Parent's Name: IMT, Mobile: 1234567890
Others: ["A",1]

Fazit

Java ist eine beliebte Programmiersprache, und wir stoßen oft auf Situationen, in denen wir Datenaustausch benötigen. Obwohl es andere Datenaustauschformate gibt, ist JSON eines der beliebtesten, einfachsten und verständlichsten Formate.

Wir haben das JSON-Format, seine Datentypen und geparste JSON-Dateien in Java gelernt. JSON kann eine beliebig komplexe Struktur haben, die es uns ermöglicht, beliebige JSON-Daten auszutauschen.

Andererseits bietet Java eine einfache, einzigartige und dennoch leistungsstarke Methode zur Handhabung von JSON.

Verwandter Artikel - Java JSON