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.
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" }
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!