jackson 转换 enum 类型
REST API 接口要求 requster json 的 lifeCycle 域只能填 YOUNG, OLD,对于其他的 lifeCycle,都要给 requester 返回 bad request 消息。
public class DataCategory {
    LifeCycle lifeCycle;
    public void setLifeCycle(LifeCycle lifeCycle) {
        this.lifeCycle = lifeCycle;
    }
    public LifeCycle getLifeCycle() {
        return lifeCycle;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    String name;
    public static void main(String args[]) {
        DataCategory dc = new DataCategory();
        dc.setName("name");
        dc.setLifeCycle(LifeCycle.END_OF_SERVICE);
        ObjectMapper objectMapper = new ObjectMapper();
        System.out.println(dc.toString());
        String jsonStr1 = "{\"lifeCycle\":\"END_OF_SERVICE\",\"name\":\"false\"}";
        try {
            DataCategory newDC = objectMapper.readValue(jsonStr1, DataCategory.class);
            System.out.println(newDC.getLifeCycle());
            System.out.println(String.valueOf(newDC.getLifeCycle()));
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            System.out.println(objectMapper.writeValueAsString(dc));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
jackson可以正常的进行序列化和反序列化。
但是插入到 mongodb 中时就报错,说序列化 class 失败。而getLifeCycle().toString()又不work。
因此使用 String.valueOf(getLifeCycle()) 来从 枚举类型转化到 String
                    
                
                
            
        
浙公网安备 33010602011771号