@ PathVariable中是否可以使用和自定义反序列化器?
public class MyClass {
@JsonSerialize(using = CustomSerializer.class)
@JsonDeserialize(using = CustomDeserializer.class)
private String id;
}
在我的RestController中,我有一个带有1 @PathVariable的api,我想使用自定义解串器。现在,当我调用此api时,Id会自动进入MyClass,而无需使用自定义反序列化器。
@GetMapping("/try/{id}")
public void idk(@PathVariable(name = "id") MyClass myClass) {
System.out.println(myClass);
}
如果我使用@RequestBody工作。
如何触发@JsonDeserialize(使用= CustomDeserializer.class)
您可以使用下面的代码
@ControllerAdvice
public class GlobalControllerAdvice {
@ModelAttribute("id")
public MyClass getId(@PathVariable String id) {
MyClass result = // map value to object
return result;
}
}
我认为您不能使其自动触发,您应该创建一个映射来映射您的对象或使用以下解决方案!否则,您可以在控制器函数中调用构造函数。这取决于您以后要做什么。