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
时间: 2024-10-29 04:16:34