HOWTO · Java
Objekt in JSON in Java serialisieren
Dieses Tutorial zeigt, wie Sie ein Objekt in Java in JSON 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:
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 ]