zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    hdoj 4251 The Famous ICPC Team Again
    hdoj 1879 最小生成树之继续畅通工程
    并查集之Dragon Balls
    并查集之 Is It A Tree?
    hdoj 1874最短路之畅通工程续
    1040: Count
    hdoj 1874最短路之最短路径问题
    并查集之小希的迷宫
    并查集之食物链
    Ordered Fractions
  • 原文地址:https://www.cnblogs.com/xinsheng/p/4417151.html
Copyright © 2011-2022 走看看