Ich mache Validierung mit JSR-303
in meiner Spring-App, es funktioniert wie benötigt.JSR-303 Validierung in Spring-Controller und bekommen @ JsonProperty Name
Dies ist ein Beispiel:
@Column(nullable = false, name = "name")
@JsonProperty("customer_name")
@NotEmpty
@Size(min = 3, max = 32)
private String name;
und REST-API-Clients customer_name
als Name Eingabefeld verwenden, das org.springframework.validation.FieldError
kehren name
als Name des Feldes zu API Knospe Validierungsfeld Fehler senden.
Gibt es eine Möglichkeit, JSON-ish
Name zu bekommen, der in @JsonProperty
spezifiziert ist? Oder muss ich einen eigenen Mapper implementieren, um Klassenfeldnamen in seine JSON-Alternative zu mappen?
Edit1: Das Umbenennen von Klassenfeldern in Namen, die JSON-Namen entsprechen, ist (aus vielen Gründen) nicht alternativ.
Diese [Antwort] (https://Stackoverflow.com/a/44281799/1426227) kann Ihnen einige Einblicke geben, wie man eine Constraint-Verletzung analysiert und dann Jackson verwendet, um den tatsächlichen JSON-Eigenschaftsnamen zu finden. –