0
我想在使用spring jackson將它轉換爲POJO之前驗證控制器中的傳入json對象。在將它轉換爲POJO之前驗證Json對象 - 使用@requestBody
我的控制器:
@RequestMapping(value = "/createContact" , method = RequestMethod.POST , consumes = MediaType.APPLICATION_JSON_VALUE , produces = MediaType.APPLICATION_JSON_VALUE)
public Contact createContact(@RequestBody Contact contact) throws Exception
{
return ContactService.createContact(contact);
}
我Contact.java
public class Contact
{
private String ID = UUID.randomUUID().toString();
private String type = "contact";
private String category;
private String name;
}
我想實現的是 '類型' 字段不應該在請求JSON傳遞。如果消費者通過該值,我需要拋出一個異常。
我可以將json作爲Map或字符串進行驗證,然後將其轉換爲POJO。但在直接投射之前是否可以驗證它?
註冊驗證器攔截由於對象是使用傑克遜映射解析,相應註解你的對象,使用XML傑克遜註釋。這應該可以解決你的問題。 – Schaka
@Schaka - 在對象級別註釋將是全局性的。對於某些請求,我需要阻止請求負載中的'type'字段並拋出異常,但是在其他請求中,我需要接受'type'字段。你能幫我解決嗎? –