<dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.12.3</version> </dependency> </dependencies> public class Person { private String name; private int age; // getters and setters } import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; public class PersonSerializer extends JsonSerializer<Person> { @Override public void serialize(Person person, JsonGenerator jgen, SerializerProvider serializers) throws IOException { jgen.writeStartObject(); jgen.writeStringField("name", person.getName()); jgen.writeNumberField("age", person.getAge()); jgen.writeEndObject(); } } import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import java.io.IOException; public class PersonDeserializer extends JsonDeserializer<Person> { @Override public Person deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { String name = jp.getCodec().readTree(jp).get("name").asText(); int age = jp.getCodec().readTree(jp).get("age").asInt(); return new Person(name, age); } } import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; public class Main { public static void main(String[] args) { ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.addSerializer(Person.class, new PersonSerializer()); module.addDeserializer(Person.class, new PersonDeserializer()); objectMapper.registerModule(module); Person person = new Person("John Doe", 30); try { String json = objectMapper.writeValueAsString(person); System.out.println("Serialized JSON: " + json); Person deserializedPerson = objectMapper.readValue(json, Person.class); System.out.println("Deserialized Person: " + deserializedPerson); } catch (Exception e) { e.printStackTrace(); } } }


上一篇:
下一篇:
切换中文