使用jackson进行json的序列化与反序列化
Manny

Jackson是一种广泛使用的JSON库,可以轻松地将Java对象转换为JSON数据和将JSON数据转换为Java对象。

Spring Boot默认集成了Jackson作为其JSON序列化和反序列化库,不需要特别配置Jackson,它已经包含在Spring Boot的启动器依赖中,因此在Spring Boot应用中,您可以直接使用Jackson进行JSON操作,而不需要额外的依赖或配置。

ObjectMapper

ObjectMapper 是 Jackson JSON 处理库中的一个核心类,它用于执行 JSON 数据和 Java 对象之间的转换(序列化和反序列化)。

以下是一些关于 ObjectMapper 的常见用法和方法:

  1. 创建 ObjectMapper 实例

    1
    2
    3
    import com.fasterxml.jackson.databind.ObjectMapper;

    ObjectMapper objectMapper = new ObjectMapper();
  2. 将 Java 对象序列化为 JSON字符串

    1
    String jsonString = objectMapper.writeValueAsString(javaObject);
  3. 将 JSON 反序列化为 Java 对象

    1
    JavaClass javaObject = objectMapper.readValue(jsonString, JavaClass.class);
  4. 其他设置和配置: ObjectMapper 可以用于配置各种序列化和反序列化选项。

    • SerializationFeature 和 DeserializationFeature:

    SerializationFeature 用于配置 JSON 序列化选项,例如日期格式、空值处理等。

    DeserializationFeature 用于配置 JSON 反序列化选项,例如忽略未知属性、空字符串转换为 null 等。

    1
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    • 配置日期序列化的格式
    1
    2
    SimpleDateFormat format = new SimpleDateFormat("yy.MM.dd");
    objectMapper.setDateFormat(format);
    • JsonInclude用于设置序列化时包含或排除的属性
    1
    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // 只包含非空属性
    • activateDefaultTyping 方法可以用于配置多态类型的序列化和反序列化:
    1
    objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
 评论