Wie ignoriere ich Enum-Felder in der Jackson JSON-zu-Objekt-Zuordnung?

Ich habe ein JSON-Objekt wie:

{"name":"John", "grade":"A"}

oder

{"name":"Mike", "grade":"B"}

oder

{"name":"Simon", "grade":"C"}

usw

Ich versuche, den obigen JSON zuzuordnen:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Employee{
      @JsonIgnoreProperties(ignoreUnknown = true)
      public enum Grade{ A, B, C }
      Grade grade;
      String name;

  public Grade getGrade() {
    return grade;
  }

  public void setGrade(Grade grade) {
    this.grade = grade;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

Die obige Zuordnung funktioniert einwandfrei, aber in Zukunft wird es mehr "Grade" -Typen geben, z. B. D, E usw., die die vorhandene Zuordnung aufheben und die folgende Ausnahme auslösen

05-08 09:56:28.130: W/System.err(21309): org.codehaus.jackson.map.JsonMappingException: Can not construct instance of Employee from String value 'D': value not one of declared Enum instance names

Gibt es eine Möglichkeit, unbekannte Felder mit Aufzählungstypen zu ignorieren?

Vielen Dank

Antworten auf die Frage(3)

Ihre Antwort auf die Frage