2017-01-18 39 views
1

我在我的Spring應用程序中使用JSR-303進行驗證,它在需要時起作用。JSR-303在Spring控制器驗證並獲取@JsonProperty名稱

這是一個例子:

@Column(nullable = false, name = "name") 
    @JsonProperty("customer_name") 
    @NotEmpty 
    @Size(min = 3, max = 32) 
    private String name; 

和REST API客戶端使用customer_name作爲發送到API芽確認字段錯誤org.springframework.validation.FieldError回報name作爲字段的名稱輸入字段的名稱。

有沒有什麼方法可以得到JSON-ish@JsonProperty中指定的名字?還是我必須實現自己的映射器來將類字段名稱映射到其JSON替代品中?

Edit1:將類字段重命名爲與JSON名稱對應的名稱是不可替代的(出於許多原因)。

+0

This [answer](https://stackoverflow.com/a/44281799/1426227)可能會給你一些關於如何解析違反約束的見解,然後使用Jackson找到實際的JSON屬性名稱。 –

回答

0

目前無法實現此目的。在參考實現中,我們遇到了一個問題:HV-823

這將解決Hibernate Validator方面的問題(即返回您期望的名稱,從Path.Node#getName()),它需要更多的檢查Spring是否真的從那裏獲取名稱。

也許你有興趣幫助實施這一項?

+0

前段時間我寫了這個[回覆](https://stackoverflow.com/a/44281799/1426227)。這是關於如何解析約束衝突,然後使用Jackson找到實際的JSON屬性名稱。 –