Gibt es eine Möglichkeit, Json-Attribute basierend auf vordefinierten Werten in Java zu überprüfen?
zum Beispiel:
{
"operation": "ONE"
}
Nur zulässige Werte für den Betrieb sind EINS ZWEI DREI. In der JSON-Schicht möchten wir dieses Operationsattribut überprüfen. Wenn request andere als die oben genannten Werte hat, möchten wir es ablehnen. Gibt es eine JSON-Anmerkung, um dies zu erreichen?
Verwendete Bibliothek: Fasterxml Jackson
Danke im Voraus.
Antworten:
0 für die Antwort № 1Nun, es gibt zwei Möglichkeiten: Erstens können Sie @JsonProperty verwenden. Dafür müssen Sie @JsonCreator oder einen benutzerdefinierten Konstruktor hinzufügen.
Oder Sie können einfach die Jackson-Schema-Validierung verwenden. Erstellen Sie eine schema.json und überprüfen Sie jede eingehende Eingabe anhand des Schemas. Beispiel:
{
"operation": {
"type":"string",
"required":true,
"enum":["ONE","TWO","THREE"]
}
}
Es ist besser als der Umgang mit den Ausnahmen, die ausgelöst wurden, z. B. JsonMappingException und UnrecognizedPropertyException von Jackson.
Weitere Informationen zur Schema-Validierung finden Sie unter: http://wilddiary.com/validate-json-against-schema-in-java/