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

Jackson是一种广泛使用的JSON库,可以轻松地将Java对象转换为JSON数据和将JSON数据转换为Java对象。
Spring Boot默认集成了Jackson作为其JSON序列化和反序列化库,不需要特别配置Jackson,它已经包含在Spring Boot的启动器依赖中,因此在Spring Boot应用中,您可以直接使用Jackson进行JSON操作,而不需要额外的依赖或配置。
ObjectMapper
ObjectMapper
是 Jackson JSON 处理库中的一个核心类,它用于执行 JSON 数据和 Java 对象之间的转换(序列化和反序列化)。
以下是一些关于 ObjectMapper
的常见用法和方法:
创建 ObjectMapper 实例
1
2
3import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper objectMapper = new ObjectMapper();将 Java 对象序列化为 JSON字符串
1
String jsonString = objectMapper.writeValueAsString(javaObject);
将 JSON 反序列化为 Java 对象
1
JavaClass javaObject = objectMapper.readValue(jsonString, JavaClass.class);
其他设置和配置:
ObjectMapper
可以用于配置各种序列化和反序列化选项。- SerializationFeature 和 DeserializationFeature:
SerializationFeature 用于配置 JSON 序列化选项,例如日期格式、空值处理等。
DeserializationFeature 用于配置 JSON 反序列化选项,例如忽略未知属性、空字符串转换为 null 等。
1
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
- 配置日期序列化的格式
1
2SimpleDateFormat 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);
- 本文标题:使用jackson进行json的序列化与反序列化
- 创建时间:2023-10-28 18:07:34
- 本文链接:2023/10/28/java/使用jackson进行json的序列化与反序列化/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论