Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Im Bereich der modernen Programmierung ist die Handhabung von Daten in Form von JSON (JavaScript-Objekt-Notation) ist zu einer entscheidenden Aufgabe geworden. Die Einfachheit und Benutzerfreundlichkeit von JSON macht es zu einer beliebten Wahl für den Datenaustausch zwischen einem Server und einem Client. Für Java-Entwickler erweist sich die Jackson-Bibliothek als mächtiges Werkzeug für die Verarbeitung von JSON. Dieser Artikel befasst sich mit den Funktionen, der Nutzung und den Vorteilen von Jackson Java und liefert Codebeispiele, um seine Fähigkeiten zu veranschaulichen. Zusätzlich werden wir untersuchen IronPDF für Java und zeigen Sie, wie Sie es mit Jackson integrieren, um PDF-Dokumente aus JSON-Daten zu erstellen.
Jackson ist ein leistungsstarker JSON-Prozessor für Java. Es bietet umfassende Unterstützung für JSON und stellt eine Reihe von Tools zur Verfügung, um Java-Objekte in JSON zu serialisieren und JSON in Java-Objekte zu deserialisieren. Entwickelt von FasterXML, wird Jackson aufgrund seiner Robustheit, Flexibilität und Benutzerfreundlichkeit in der Java-Community häufig genutzt.
Datenbindung: Jackson ist hervorragend darin, Java-Objekte in JSON umzuwandeln und umgekehrt, sodass die Serialisierung und Deserialisierung von Daten unkompliziert ist.
Baummodell: Diese Funktion ermöglicht das Parsen von JSON in eine baumartige Struktur, wodurch die Manipulation von JSON-Daten ohne Bindung an bestimmte Java-Objekte ermöglicht wird.
Streaming-API: Für die Verarbeitung großer JSON-Dateien bietet Jackson eine Low-Level-API, die JSON-Inhalte als diskrete Token liest und schreibt.
Unterstützung von Annotations: Jackson unterstützt verschiedene Annotations, um die Serialisierungs- und Deserialisierungsprozesse zu steuern und eine feinkörnige Kontrolle über die JSON-Verarbeitung zu ermöglichen.
Um Jackson in Ihrem Java-Projekt zu verwenden, müssen Sie die erforderlichen Abhängigkeiten hinzufügen. Für Benutzer, die Maven verwenden, fügen Sie folgenden Code zu Ihrer pom.xml hinzu:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2</version>
</dependency>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<dependency> <groupId> com.fasterxml.jackson.core</groupId> <artifactId> jackson-databind</artifactId> <version>2.13.2</version> </dependency>
Die häufigste Verwendung von Jackson besteht darin, JSON-Daten an Java-Objekte zu binden. (POJOs) und vice versa. Hier ist ein einfaches Beispiel, um dies zu demonstrieren:
import com.fasterxml.jackson.databind.ObjectMapper;
class Main {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
// Java object to JSON
try {
User user = new User("John", "Doe", 30);
String jsonString = objectMapper.writeValueAsString(user);
System.out.println("JSON String: " + jsonString);
// JSON to Java object
String jsonInput = "{\"firstName\":\"Jane\",\"lastName\":\"Doe\",\"age\":25}";
User userFromJson = objectMapper.readValue(jsonInput, User.class);
System.out.println("User from JSON: " + userFromJson);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class User {
public String firstName;
public String lastName;
public int age;
public User() {
}
public User(String firstname, String lastname, int i) {
firstName = firstname;
lastName = lastname;
age = i;
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
class Main {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
// Java object to JSON
try {
User user = new User("John", "Doe", 30);
String jsonString = objectMapper.writeValueAsString(user);
System.out.println("JSON String: " + jsonString);
// JSON to Java object
String jsonInput = "{\"firstName\":\"Jane\",\"lastName\":\"Doe\",\"age\":25}";
User userFromJson = objectMapper.readValue(jsonInput, User.class);
System.out.println("User from JSON: " + userFromJson);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class User {
public String firstName;
public String lastName;
public int age;
public User() {
}
public User(String firstname, String lastname, int i) {
firstName = firstname;
lastName = lastname;
age = i;
}
}
Private com As import
Friend Class Main
Public Shared Sub main(ByVal args() As String)
Dim objectMapper As New ObjectMapper()
' Java object to JSON
Try
Dim user As New User("John", "Doe", 30)
Dim jsonString As String = objectMapper.writeValueAsString(user)
System.out.println("JSON String: " & jsonString)
' JSON to Java object
Dim jsonInput As String = "{""firstName"":""Jane"",""lastName"":""Doe"",""age"":25}"
Dim userFromJson As User = objectMapper.readValue(jsonInput, User.class)
System.out.println("User from JSON: " & userFromJson)
Catch e As Exception
e.printStackTrace()
End Try
End Sub
End Class
Friend Class User
Public firstName As String
Public lastName As String
Public age As Integer
Public Sub New()
End Sub
Public Sub New(ByVal firstname As String, ByVal lastname As String, ByVal i As Integer)
Me.firstName = firstname
Me.lastName = lastname
age = i
End Sub
End Class
Das Baum-Modell von Jackson ist nützlich zum Verarbeiten von JSON-Daten, ohne Java-Klassen erstellen zu müssen. Hier ist ein Beispiel:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
class TreeModelExample {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
try {
String jsonString = "{\"name\":\"John\", \"age\":30}";
// Parse JSON string into JsonNode
JsonNode rootNode = objectMapper.readTree(jsonString);
System.out.println("Name: " + rootNode.get("name").asText());
System.out.println("Age: " + rootNode.get("age").asInt());
// Modify the JSON
((ObjectNode) rootNode).put("age", 31);
System.out.println("Modified JSON: " + rootNode.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
class TreeModelExample {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
try {
String jsonString = "{\"name\":\"John\", \"age\":30}";
// Parse JSON string into JsonNode
JsonNode rootNode = objectMapper.readTree(jsonString);
System.out.println("Name: " + rootNode.get("name").asText());
System.out.println("Age: " + rootNode.get("age").asInt());
// Modify the JSON
((ObjectNode) rootNode).put("age", 31);
System.out.println("Modified JSON: " + rootNode.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Private com As import
Private com As import
Private com As import
Friend Class TreeModelExample
Public Shared Sub main(ByVal args() As String)
Dim objectMapper As New ObjectMapper()
Try
Dim jsonString As String = "{""name"":""John"", ""age"":30}"
' Parse JSON string into JsonNode
Dim rootNode As JsonNode = objectMapper.readTree(jsonString)
System.out.println("Name: " & rootNode.get("name").asText())
System.out.println("Age: " & rootNode.get("age").asInt())
' Modify the JSON
CType(rootNode, ObjectNode).put("age", 31)
System.out.println("Modified JSON: " & rootNode.toString())
Catch e As Exception
e.printStackTrace()
End Try
End Sub
End Class
Zum Verarbeiten großer JSON-Dateien ist die Streaming-API effizient:
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import java.io.File;
class StreamingAPIExample {
public static void main(String[] args) {
JsonFactory factory = new JsonFactory();
try (JsonParser parser = factory.createParser(new File("large.json"))) {
while (!parser.isClosed()) {
JsonToken token = parser.nextToken();
if (token == JsonToken.FIELD_NAME) {
String fieldName = parser.getCurrentName();
System.out.println("Field: " + fieldName);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import java.io.File;
class StreamingAPIExample {
public static void main(String[] args) {
JsonFactory factory = new JsonFactory();
try (JsonParser parser = factory.createParser(new File("large.json"))) {
while (!parser.isClosed()) {
JsonToken token = parser.nextToken();
if (token == JsonToken.FIELD_NAME) {
String fieldName = parser.getCurrentName();
System.out.println("Field: " + fieldName);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Private com As import
Private com As import
Private com As import
Private java As import
Friend Class StreamingAPIExample
Public Shared Sub main(ByVal args() As String)
Dim factory As New JsonFactory()
Try
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' (JsonParser parser = factory.createParser(New File("large.json")))
' {
' while (!parser.isClosed())
' {
' JsonToken token = parser.nextToken();
' if (token == JsonToken.FIELD_NAME)
' {
' String fieldName = parser.getCurrentName();
' System.out.println("Field: " + fieldName);
' }
' }
' }
Catch e As Exception
e.printStackTrace()
End Try
End Try
End Sub
IronPDF ist eine umfassende Bibliothek zum Erstellen, Bearbeiten und Rendern von PDF-Dokumenten in Java. Es bietet eine einfache API zur Erstellung von PDFs aus verschiedenen Quellen, wie HTML, URLs oder bestehenden Dokumenten. IronPDF ist besonders nützlich, wenn Sie PDFs aus JSON-Daten erstellen müssen, die von Jackson verarbeitet wurden. Zum Beispiel, wenn ein Entwickler eine Spring Boot-Anwendung erstellt, die das Generieren von Berichten basierend auf Daten beinhaltet, kann IronPDF den Arbeitsablauf erheblich vereinfachen.
Um IronPDF in Ihrem Projekt zu verwenden, fügen Sie die folgende Abhängigkeit hinzu:
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2023.6.0</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2023.6.0</version>
</dependency>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<dependency> <groupId> com.ironsoftware</groupId> <artifactId> ironpdf</artifactId> <version>2023.6.0</version> </dependency>
Indem wir Jackson und IronPDF kombinieren, können wir eine leistungsstarke Lösung zur Erstellung von PDF-Dokumenten aus JSON-Daten entwickeln. Unten ist ein umfassendes Beispiel, das JSON-Daten liest, sie mit Jackson verarbeitet und ein PDF-Dokument mit IronPDF erstellt.
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.*;
import java.io.File;
import java.util.List;
class JacksonIronPDFExample {
public static void main(String[] args) {
try {
ObjectMapper objectMapper = new ObjectMapper();
// Read JSON from a file
List<Person> persons = objectMapper.readValue(new File("persons.json"),
objectMapper.getTypeFactory().constructCollectionType(List.class, Person.class));
// Generate HTML content from the JSON data
StringBuilder htmlContent = new StringBuilder("<h1>Persons List</h1><table border='1'><tr><th>First Name</th><th>Last Name</th><th>Birth Date</th></tr>");
for (Person person : persons) {
htmlContent.append("<tr>")
.append("<td>").append(person.getFirstName()).append("</td>")
.append("<td>").append(person.getLastName()).append("</td>")
.append("<td>").append(person.getBirthDate()).append("</td>")
.append("</tr>");
}
htmlContent.append("</table>");
// Create PDF from the HTML content
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent.toString());
pdf.saveAs("persons.pdf");
System.out.println("PDF created successfully from JSON data!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
private String firstName;
private String lastName;
private String birthDate;
// Constructors, getters, and setters omitted for brevity
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.*;
import java.io.File;
import java.util.List;
class JacksonIronPDFExample {
public static void main(String[] args) {
try {
ObjectMapper objectMapper = new ObjectMapper();
// Read JSON from a file
List<Person> persons = objectMapper.readValue(new File("persons.json"),
objectMapper.getTypeFactory().constructCollectionType(List.class, Person.class));
// Generate HTML content from the JSON data
StringBuilder htmlContent = new StringBuilder("<h1>Persons List</h1><table border='1'><tr><th>First Name</th><th>Last Name</th><th>Birth Date</th></tr>");
for (Person person : persons) {
htmlContent.append("<tr>")
.append("<td>").append(person.getFirstName()).append("</td>")
.append("<td>").append(person.getLastName()).append("</td>")
.append("<td>").append(person.getBirthDate()).append("</td>")
.append("</tr>");
}
htmlContent.append("</table>");
// Create PDF from the HTML content
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent.toString());
pdf.saveAs("persons.pdf");
System.out.println("PDF created successfully from JSON data!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Person {
private String firstName;
private String lastName;
private String birthDate;
// Constructors, getters, and setters omitted for brevity
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
}
Private com As import
Private com As import
Private com As import
Private java As import
Private java As import
Friend Class JacksonIronPDFExample
Public Shared Sub main(ByVal args() As String)
Try
Dim objectMapper As New ObjectMapper()
' Read JSON from a file
Dim persons As List(Of Person) = objectMapper.readValue(New File("persons.json"), objectMapper.getTypeFactory().constructCollectionType(List.class, Person.class))
' Generate HTML content from the JSON data
Dim htmlContent As New StringBuilder("<h1>Persons List</h1><table border='1'><tr><th>First Name</th><th>Last Name</th><th>Birth Date</th></tr>")
Do
htmlContent.append("<tr>").append("<td>").append(person.getFirstName()).append("</td>").append("<td>").append(person.getLastName()).append("</td>").append("<td>").append(person.getBirthDate()).append("</td>").append("</tr>")
Loop
htmlContent.append("</table>")
' Create PDF from the HTML content
Dim pdf As PdfDocument = PdfDocument.renderHtmlAsPdf(htmlContent.toString())
pdf.saveAs("persons.pdf")
System.out.println("PDF created successfully from JSON data!")
Catch e As Exception
e.printStackTrace()
End Try
End Sub
End Class
Friend Class Person
Private firstName As String
Private lastName As String
Private birthDate As String
' Constructors, getters, and setters omitted for brevity
Public Function getFirstName() As String
Return firstName
End Function
Public Sub setFirstName(ByVal firstName As String)
Me.firstName = firstName
End Sub
Public Function getLastName() As String
Return lastName
End Function
Public Sub setLastName(ByVal lastName As String)
Me.lastName = lastName
End Sub
Public Function getBirthDate() As String
Return birthDate
End Function
Public Sub setBirthDate(ByVal birthDate As String)
Me.birthDate = birthDate
End Sub
End Class
Jackson ist ein unverzichtbares Werkzeug für Java-Entwickler, die mit JSON-Daten arbeiten. Seine Vielseitigkeit, Leistung und Benutzerfreundlichkeit machen es zu einer bevorzugten Wahl für die JSON-Verarbeitung. In Kombination mit IronPDF wird es noch leistungsfähiger und ermöglicht Entwicklern, JSON-Daten problemlos in gut formatierte PDF-Dokumente zu konvertieren. Durch die Integration dieser beiden Bibliotheken können Sie Ihre Datenverarbeitungs- und Berichtsworkflows optimieren und dynamische, professionell aussehende PDFs mit minimalem Aufwand erstellen. Das Java-Ökosystem, einschließlich des Jackson-Databind-Projekts, entwickelt sich ständig mit kleinen Versionen und großen Updates weiter. Um sicherzustellen, dass Ihr Projekt die neuesten Tools verwendet, überprüfen Sie stets das zentrale Maven-Repository auf die neuesten Jackson-Versionen und Versionsnummern-Updates.
Um mehr darüber zu erfahren, wie HTML als PDF gerendert wird, besuchen Sie die IronPDF-Übersicht. Weitere Einzelheiten zu Jackson Core und Jackson-Annotationen finden Sie, indem Sie auf die externen Links klicken und die offizielle Dokumentation einsehen. Jackson-Dokumentation.
9 .NET API-Produkte für Ihre Bürodokumente