java - 使用 Spring Web 服务时的 Enum 类型转换

标签 java spring spring-mvc enums

这将是以下问题的延伸:

Spring web service request and response for mapping having list of other objects

如果问题 POJO 有枚举类型怎么办?当发出请求并使用 @RequestBody 时,如何在 ajax 调用中表示这一点。

例如:

public class Question {

    private String questionText;

    List<Options> options;

    private QuestionTye questionType

    public String getQuestionText() {
        return questionText;
    }

    public void setQuestionText(String questionText) {
        this.questionText = questionText;
    }

    //getters and setters for options


}

枚举如下所示:

public enum QuestionType {

    MCQ, FILL_IN_THE_BLANK, QUESTION_AND_ANSWER, MATCH_THE_FOLLOWING

}

将 JSON 发送到服务器时应如何格式化它?

最佳答案

假设您的类补丁上有 jackson API,请添加带注释的“Create”方法。我还喜欢在枚举中添加“None”选项以避免空指针:

public enum QuestionType {

    MCQ, FILL_IN_THE_BLANK, QUESTION_AND_ANSWER, MATCH_THE_FOLLOWING, NONE;

    @JsonCreator
    public QuestionType create(String input){

        QuestionType result;
        if("MCQ".equals(input)){

            result = MCQ;
        }
        else if(/*snip etc*/){

        }//etc
        else{

           result = NONE;//Or null or throw an exception .. whatever
        }
        return result;
    }
}

关于java - 使用 Spring Web 服务时的 Enum 类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22240043/

相关文章:

java - 取整数数组

Spring Data JDBC - Kotlin 支持 - 未找到类所需的属性

java - 如何通过重试将 Java Spring Flow 转换为 Spring Integration Work Flow?

Spring MVC : Making multi user friendly

java - 为什么这两种方法在单个打印语句中不能正常工作?

java - 一个 JFrame 中的两个 JPanel

java - 正则表达式不适用于替换特殊字符

Java:通过Spring创建基于OCP的工厂?

java - jetty Spring "No resource at X"ResourceAnnotationHandler

java - Spring 的数据绑定(bind)器 autoGrowCollectionLimit 不能正常工作