2016-05-13 405 views
0

我在Java中執行小型REST服務。@RequestBody中只允許存在的字段

我想從DTO發送有效的請求體,只能用現有油田:

public class ObjectDto implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private String text; 

    public String getText() { 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 
} 

Web服務生產和消費JSON。

@POST 
@Path("/{id}/objs") 
public Map<String, String> searchObject(@PathParam(NamedPathParameters.CUSTOMER_ID) String customerId, 
               @RequestBody ObjectDto obj) 

當我通過郵差測試了一下,有以下允許身體:

{ 
    "xcv":"" 
} 

它是需要禁止不是「文本」不同的密鑰。我感覺這裏有一個註釋。我對嗎?哪一個?我想避免條件:

if(key!="test") 

因爲會有更多的字段,而不僅僅是一個。

+1

在這個問題上設置'DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES'到TRUE;如http://stackoverflow.com/questions/14343477/how-do-you-globally -set-傑克遜到忽略未知 - 屬性 - 內彈簧 –

回答