/ / Gibt es eine Möglichkeit, Json-Attribute basierend auf vordefinierten Werten in Java zu überprüfen? - java, json, jackson und schnellerxml

Gibt es eine Möglichkeit, JSON-Attribute basierend auf vordefinierten Werten in Java zu validieren? - java, json, jackson, schnellerxml

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 № 1

Nun, 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/