Я хочу использовать пользовательский десериализатор JSON для некоторых классов ( Роль здесь), но я не могу заставить его работать. Пользовательский десериализатор просто не вызывается.
Я использую Spring Boot 1.2.
десериализатор:
public class ModelDeserializer extends JsonDeserializer<Role> {
@Override
public Role deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return null; // this is what should be called but it isn't
}
}
Контроллер:
@RestController
public class RoleController {
@RequestMapping(value = "/role", method = RequestMethod.POST)
public Object createRole(Role role) {
// ... this is called
}
}
-
@JsonDeserialize
о роли@JsonDeserialize(using = ModelDeserializer.class) public class Role extends Model { }
-
Jackson2ObjectMapperBuilder
bean в конфигурации Java@Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder.deserializerByType(Role.class, new ModelDeserializer()); return builder; }
Что я делаю неправильно?
EDIT Вероятно, это вызвано @RestController
, поскольку оно работает с @Controller
...