Objekt in JSON in Java serialisieren

Sheeraz Gul 12 Oktober 2023
Objekt in JSON in Java serialisieren

Dieses Tutorial demonstriert die Verwendung von Java-JSON und Jackson API, um ein Objekt in JSON in Java zu serialisieren.

Objekt in JSON in Java serialisieren

Es gibt verschiedene Bibliotheken, die für JSON-Operationen verwendet werden. Diese Bibliotheken können auch Java-Objekte mithilfe der Java-Programmierung in JSON serialisieren.

Verwenden Sie die Java-JSON-API, um Java-Objekte in JSON zu serialisieren

Java-JSON ist eine Drittanbieter-API zur Durchführung von JSON-Operationen in Java, da Java JSON im integrierten Modus nicht unterstützt. Diese Bibliothek kann Java-Objekte in JSON serialisieren.

Das Java-JSON kommt mit verschiedenen Features und ist besser als viele ähnliche Bibliotheken. Die Hauptmerkmale sind:

  • Rückwärtskompatibilität.
  • Konsistente und zuverlässige Ergebnisse.
  • Es hat eine schnelle Ausführung und einen geringen Speicherbedarf.
  • Es gibt keine externen Abhängigkeiten.
  • Es bietet die Einhaltung der JSON-Spezifikation.

Bevor Sie diese API verwenden, müssen Sie sie Ihrem Erstellungspfad hinzufügen. Dies kann einfach mit der Gradle-Projektabhängigkeit durchgeführt werden:

implementation 'org.json:json:20210307'

Sie können es auch zu Ihrem allgemeinen Java-Projekt hinzufügen, indem Sie die jar-Datei dieser API von hier herunterladen und sie dem Build-Pfad Ihres Projekts hinzufügen.

Das Java-JSON stellt eine Klasse JSONWriter bereit, mit der wir Java-Daten in ein JSON-Objekt serialisieren können. Versuchen wir es an einem Beispiel:

package delftstack;

import java.io.StringWriter;
import java.io.Writer;
import org.json.JSONException;
import org.json.JSONWriter;

public class Example {
  public static void main(String[] args) throws JSONException {
    Writer DemoUser = new StringWriter();

    var JSON_Writer = new JSONWriter(DemoUser);

    JSON_Writer.object();
    JSON_Writer.key("Name").value("Sheeraz");
    JSON_Writer.key("Occupation").value("Software Engineer");
    JSON_Writer.key("Age").value(28);
    JSON_Writer.key("Married").value(false);

    JSON_Writer.key("Skills");
    JSON_Writer.array();
    JSON_Writer.value("Java");
    JSON_Writer.value("Python");
    JSON_Writer.value("PHP");
    JSON_Writer.value("Matlab");
    JSON_Writer.value("R");
    JSON_Writer.endArray();

    JSON_Writer.endObject();

    System.out.println(DemoUser);
  }
}

Der obige Code serialisiert die Daten mithilfe der JSONWriter-Klasse der API in ein JSON-Objekt. Siehe Ausgabe:

{"Name":"Sheeraz","Occupation":"Software Engineer","Age":28,"Married":false,"Skills":["Java","Python","PHP","Matlab","R"]}

Verwenden Sie die Jackson-API, um das Java-Objekt in JSON zu serialisieren

Jackson ist eine Open-Source-Bibliothek für JSON-Operationen in Java. Die Bibliothek kann JSON-Objekte in Java serialisieren und deserialisieren.

Diese Bibliothek hat die Methode writeValue(...), die verwendet wird, um Java-Objekte in JSON-Objekte zu serialisieren. Diese API kann als Maven-Abhängigkeit hinzugefügt werden:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

Eine andere Möglichkeit besteht darin, Ihrem allgemeinen Projekterstellungspfad jars für die Jackson-API hinzuzufügen. Laden Sie die Gläser von den folgenden Links herunter:

  1. Jackson-Datenbindung
  2. Jackson-Kern

Sobald die API jetzt zum Build-Pfad hinzugefügt wurde, können wir ein Beispiel zum Serialisieren von Java-Objekten in JSON ausprobieren:

package delftstack;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class Example {
  public static void main(String args[]) {
    Example JSON_Tester = new Example();
    try {
      Employee Employee1 = new Employee();
      Employee1.setAge(28);
      Employee1.setName("Sheeraz");
      JSON_Tester.writeJSON(Employee1);

      Employee Employee2 = JSON_Tester.readJSON();
      System.out.println(Employee2);

    } catch (JsonParseException e) {
      e.printStackTrace();
    } catch (JsonMappingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  private void writeJSON(Employee employee)
      throws JsonGenerationException, JsonMappingException, IOException {
    ObjectMapper Object_Mapper = new ObjectMapper();
    Object_Mapper.writeValue(new File("employee.json"), employee);
  }

  private Employee readJSON() throws JsonParseException, JsonMappingException, IOException {
    ObjectMapper Object_Mapper = new ObjectMapper();
    Employee employee = Object_Mapper.readValue(new File("employee.json"), Employee.class);
    return employee;
  }
}

class Employee {
  private String Employee_Name;
  private int Employee_Age;
  public Employee() {}
  public String getName() {
    return Employee_Name;
  }
  public void setName(String Employee_Name) {
    this.Employee_Name = Employee_Name;
  }
  public int getAge() {
    return Employee_Age;
  }
  public void setAge(int Employee_Age) {
    this.Employee_Age = Employee_Age;
  }
  public String toString() {
      return "Employee [Employee Name: "+Employee_Name+",
      Employee Age: "+Employee_Age+ " ]";
  }
}

Der obige Code konvertiert die Daten aus einer Java-Klasse in JSON. Siehe Ausgabe:

Employee [Employee Name: Sheeraz, Employee Age: 28 ]
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Java Object

Verwandter Artikel - Java JSON