Spring REST自定义取消序列化



是否可以配置spring来按照您的意愿取消对传入json的序列化。

例如

{ "user":"abc" }

我希望这个在被我的by controller方法处理之前,先进入我的自定义取消序列化程序。

我该怎么做?我可以访问一个用户对象,但不能将该对象注释为项目的外部对象。

但我仍然希望填充该对象,并通过REST方法将其传递到。

您必须创建objectMapperbean实现,该实现包含一个mixIn作为:

@Bean
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(MyObject.class, MyObjectMixin.class);
return mapper;
}

然后混合将是这样的:

@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE,
isGetterVisibility = JsonAutoDetect.Visibility.NONE)
@JsonDeserialize(using = MyObjectDeserializer.class)
public class MyObjectMixin {
}

最后,反序列化程序必须使用以下方法扩展JsonDeserializer

@Override
public MyObject deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {

最新更新