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.
public abstract void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException
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(); } }
{ "firstName" : "Raja", "lastName" : "Ramesh" }
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!