@JsonComponent
用于针对某个对象的json解析特殊处理
如果我们的请求参数传入了一个json对象或者返回一个jon对象,springboot默认使用Jackson进行json转换,它会自动的将我们的对象进行json转换,如果我们需要对某个对象自定义json转换处理器,根据官方文档,我们可以直接使用@JsonComponent注解,自定义一个处理器。
@JsonComponent
public class MyJsonComponent {
public static class Serializer extends JsonSerializer<Person> {
//对象序列化,将对象转为为json时使用
@Override
public void serialize(Person bean1, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException {
gen.writeStartObject();
gen.writeObjectField("name", "serialize");
gen.writeEndObject();
}
}
//解析json对象,将json转化为java对象使用
public static class Deserializer extends JsonDeserializer<Person> {
@Override
public Person deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
ObjectCodec codec = jsonParser.getCodec();
JsonNode tree = codec.readTree(jsonParser);
String name = tree.get("name").textValue();
Person bean1 = new Person();
bean1.setName("deserialize");
return bean1;
}
}
}