如何在JAX-RS中手动映射Enum字段



如何将一个简单的JSON对象{"status" : "successful"}自动映射到JAX-RS中的Java Enum?

public enum Status {
    SUCESSFUL ("successful"), 
    ERROR ("error");
    private String status;
    private Status(String status) {
        this.status = status;
    }
}

如果您需要更多详细信息,请随时询问:)

以下JAXB注释应该可以做到这一点。(我使用Jettison进行了测试,但没有尝试过其他提供商):

@XmlType(name = "status")
@XmlEnum
public enum Status {
    @XmlEnumValue(value = "successful")
    SUCESSFUL, 
    @XmlEnumValue(value = "error")
    ERROR;
}

这可能有助于

@Entity
public class Process {
  private State state;
  public enum State {
    RUNNING("running"), STOPPED("stopped"), PAUSED("paused");
    private String value;
    private State(String value) {
      this.value = value;
    }
    @JsonValue
    public String getValue() {
      return this.value;
    }
    @JsonCreator
    public static State create(String val) {
      State[] states = State.values();
      for (State state : states) {
        if (state.getValue().equalsIgnoreCase(val)) {
          return state;
        }
      }
      return STOPPED;
    }
  }
}

最新更新