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

  • 相关阅读:
    CSS标题线(删除线贯穿线效果)实现之一二
    sublime修改快捷键样式
    使用css鼠标移动到图片放大效果
    js判断苹果安卓操作系统,js更换css
    清除缓存
    mui下拉上拉(明一)
    mui下拉刷新上拉加载
    Cypher学习笔记
    github上计算String相似度好的项目
    代码重构
  • 原文地址:https://www.cnblogs.com/xinsheng/p/4417151.html
Copyright © 2011-2022 走看看