如何在Java中使用Jackson将JSON对象转换为枚举?

一个JSONObject的 可以从字符串解析文本,以生成一个映射 类的一个对象。一个枚举 可用于定义常量的集合,当我们需要这并不代表某种数字或文本数据,那么我们可以用枚举值的预定义列表。我们可以使用ObjectMapper类的readValue()方法将JSON对象转换为枚举。

在下面的示例中,我们可以使用Jackson库将JSON对象转换/反序列化为Java枚举。

示例

import com.fasterxml.jackson.databind.*;
public class JSONToEnumTest {
   public static void main(String arg[]) throws Exception {
      ObjectMapper mapper = new ObjectMapper();
      Employee emp = mapper.readValue("{\"jobType\":\"CONTRACT\"}", Employee.class);
      System.out.println(emp.getJobType());
   }
   public static class Employee {
      private JobType jobType;
      public JobType getJobType() {
         return jobType;
      }
      public void setJobType(JobType jobType) {
         this.jobType = jobType;
      }
   }
   public enum JobType {
      PERMANENT,
      CONTRACT,
   }
}

输出结果

CONTRACT