Maison > Java > javaDidacticiel > le corps du texte

Comment implémenter un sérialiseur personnalisé en Java à l'aide de la bibliothèque Jackson ?

王林
Libérer: 2023-09-12 21:37:02
avant
1348 Les gens l'ont consulté

Comment implémenter un sérialiseur personnalisé en Java à laide de la bibliothèque Jackson ?

L'API Jackson fournit de nombreuses méthodes pour traiter les données JSON. En utilisant l'API Jackson, nous pouvons convertir des objets Java en chaînes JSON et reconstruire des objets à partir de chaînes JSON. Nous pouvons utiliser la classe StdSerializer pour implémenter un sérialiseur personnalisé et devons remplacer la méthode serialize (T value, JsonGenerator gen, SerializerProvider supplier) La première valeur de paramètre représente la valeur à sérialiser (ne peut pas être vide) et la deuxième valeur de paramètre gen. représente le générateur utilisé pour générer le contenu Json résultant, et le troisième fournisseur de paramètres représente le fournisseur qui peut être utilisé pour obtenir le sérialiseur utilisé pour sérialiser la valeur de l'objet.

Grammaire

public abstract void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException
Copier après la connexion

Exemple

traduit en chinois par :

Exemple

import java.io.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.module.*;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
public class JacksonSerializeTest {
   public static void main(String[] args) throws Exception {
      JacksonSerializeTest test = new JacksonSerializeTest();
      test.serialize();
   }
   public void serialize() throws Exception {
      User user = new User();
      user.setFirstName("Raja");
      user.setLastName("Ramesh");
      ObjectMapper mapper = new ObjectMapper();
      SimpleModule module = new SimpleModule();
      module.addSerializer(User.class, new UserSerializer());
      mapper.registerModule(module);

      String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); // pretty print
      System.out.println(jsonStr);
   }
}
// User class
class User implements Serializable {
   private String firstName;
   private String lastName;
   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;
   }
}
// UserSerializer class
class UserSerializer extends StdSerializer<User> {
   public UserSerializer() {
      this(null);
   }
   public UserSerializer(Class<User> t) {
      super(t);
   }
<strong>   </strong>@Override
   public void serialize(User value, JsonGenerator jgen, SerializerProvider provider) throws       IOException, JsonProcessingException {
      jgen.writeStartObject();
      jgen.writeStringField("firstName", value.getFirstName());
      jgen.writeStringField("lastName", value.getLastName());
      jgen.writeEndObject();
   }
}
Copier après la connexion

Sortie

{
 "firstName" : "Raja",
 "lastName" : "Ramesh"
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!