Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Dans le domaine de la programmation moderne, la gestion des données sous forme de JSON(Notation d'objets JavaScript)est devenue une tâche cruciale. La simplicité et la facilité d'utilisation de JSON en font un choix populaire pour l'échange de données entre un serveur et un client. Pour les développeurs Java, la bibliothèque Jackson se distingue comme un outil puissant pour le traitement des JSON. Cet article explore les fonctionnalités, l'utilisation et les avantages de Jackson Java, en fournissant des exemples de code pour illustrer ses capacités. De plus, nous explorerons IronPDFpour Java et démontrez comment l'intégrer avec Jackson pour générer des documents PDF à partir de données JSON.
Jackson est un processeur JSON haute performance pour Java. Il offre un support complet pour JSON, proposant un ensemble d'outils pour sérialiser des objets Java en JSON et désérialiser JSON en objets Java. Développé par FasterXML, Jackson est largement utilisé dans la communauté Java en raison de sa robustesse, de sa flexibilité et de sa facilité d'utilisation.
Data Binding : Jackson excelle à convertir les objets Java en JSON et vice versa, rendant la sérialisation et la désérialisation des données simples.
Modèle Arborescent : Cette fonctionnalité permet de parser le JSON en une structure arborescente, permettant la manipulation des données JSON sans avoir à les lier à des objets Java spécifiques.
API de diffusion : Pour traiter de grands fichiers JSON, Jackson fournit une API de bas niveau qui lit et écrit le contenu JSON sous forme de jetons discrets.
Prise en charge des annotations : Jackson prend en charge diverses annotations pour contrôler les processus de sérialisation et de désérialisation, offrant un contrôle précis sur le traitement JSON.
Pour commencer à utiliser Jackson dans votre projet Java, vous devez ajouter les dépendances nécessaires. Pour les utilisateurs utilisant Maven, ajoutez le code suivant à votre pom.xml :
<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>
L'utilisation la plus courante de Jackson est de lier des données JSON à des objets Java.(POJOs) et vice versa. Voici un exemple simple pour le démontrer :
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
Le modèle d'arbre de Jackson est utile pour manipuler les données JSON sans avoir besoin de créer de classes Java. En voici un exemple :
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
Pour traiter de grands fichiers JSON, l'API de streaming est efficace :
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
IronPDFest une bibliothèque complète pour créer, éditer et rendre des documents PDF en Java. Il propose une API simple pour générer des PDF à partir de diverses sources, telles que du HTML, des URL ou des documents existants. IronPDF est particulièrement utile lorsque vous avez besoin de créer des PDF à partir de données JSON traitées par Jackson, par exemple, si un développeur crée une application Spring Boot impliquant la génération de rapports basés sur des données, IronPDF peut considérablement simplifier le flux de travail.
Pour utiliser IronPDF dans votre projet, ajoutez la dépendance suivante :
<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>
En combinant Jackson et IronPDF, nous pouvons créer une solution puissante pour générer des documents PDF à partir de données JSON. Voici un exemple complet qui lit des données JSON, les traite avec Jackson, et génère un document PDF à l'aide d'IronPDF.
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 est un outil indispensable pour les développeurs Java travaillant avec des données JSON. Sa polyvalence, ses performances et sa facilité d'utilisation en font un choix privilégié pour le traitement JSON. Lorsqu'il est combiné avec IronPDF, il devient encore plus puissant, permettant aux développeurs de convertir facilement des données JSON en documents PDF bien formatés. En intégrant ces deux bibliothèques, vous pouvez simplifier vos flux de travail de traitement des données et de création de rapports, en créant des PDF dynamiques et d'apparence professionnelle avec un effort minimal. L'écosystème de Java, y compris le projet Jackson databind, évolue constamment avec des versions mineures et des mises à jour majeures. Pour garantir que votre projet utilise les outils les plus récents, vérifiez toujours le dépôt central de Maven pour les dernières versions de Jackson et les mises à jour des numéros de version.
Pour en savoir plus sur la conversion de HTML en PDF, visitez le Aperçu d'IronPDF. Pour plus de détails sur Jackson core et les annotations Jackson, cliquez sur les liens externes et référez-vous au site officiel.Documentation Jackson.
9 produits de l'API .NET pour vos documents de bureau