Jackson 自定义 序列化
POJO
@Data
public class UserDTO {
private Integer id;
private String name;
private Integer age;
}
Serializer
public class ToUserSerializer extends JsonSerializer<UserDTO> {
@Override
public Class<UserDTO> handledType() {
return UserDTO.class;
}
@Override
public void serialize(UserDTO userDTO, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException {
gen.writeStartObject();
gen.writeObjectField("s_id", userDTO.getId());
gen.writeObjectField("s_name", userDTO.getName());
gen.writeObjectField("s_age", userDTO.getAge());
gen.writeEndObject();
}
}
Test
public class Test {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper om = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(new ToUserSerializer());
om.registerModule(simpleModule);
UserDTO dto = new UserDTO();
dto.setId(1);
dto.setName("test");
dto.setAge(11);
System.out.println(om.writeValueAsString(dto));
}
}
{"s_id":1,"s_name":"test","s_age":11}