Heim > Java > javaLernprogramm > Hauptteil

Wie implementiert man einen benutzerdefinierten Serialisierer in Java mithilfe der Jackson-Bibliothek?

王林
Freigeben: 2023-09-12 21:37:02
nach vorne
1381 Leute haben es durchsucht

Wie implementiert man einen benutzerdefinierten Serialisierer in Java mithilfe der Jackson-Bibliothek?

Die Jackson API bietet viele Methoden zur Verarbeitung von JSON-Daten. Mithilfe der Jackson-API können wir Java-Objekte in JSON-Strings konvertieren und Objekte aus JSON-Strings rekonstruieren. Wir können die StdSerializer-Klasse verwenden, um einen benutzerdefinierten Serialisierer zu implementieren, und müssen die Methode serialize(T-Wert, JsonGenerator-Gen, SerializerProvider-Anbieter) überschreiben. Der erste Parameterwert stellt den zu serialisierenden Wert dar (kann nicht leer sein) und der zweite Parameter-Gen stellt den Generator dar, der zum Ausgeben des resultierenden JSON-Inhalts verwendet wird, und der dritte Parameteranbieter stellt den Anbieter dar, der verwendet werden kann, um den Serialisierer zu erhalten, der zum Serialisieren des Objektwerts verwendet wird.

Grammatik

public abstract void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException
Nach dem Login kopieren

Beispiel

übersetzt ins Chinesische als:

Beispiel

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();
   }
}
Nach dem Login kopieren

Ausgabe

{
 "firstName" : "Raja",
 "lastName" : "Ramesh"
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie implementiert man einen benutzerdefinierten Serialisierer in Java mithilfe der Jackson-Bibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage