Java对象与JSON互转
这需要用到jackson包,org.codehaus.jackson.map.ObjectMapper
还有一个前提,对应的实体类需要实现Serializable接口
实例化ObjectMapper
// 使用静态 ObjectMapper 实例以提高性能
private static final ObjectMapper objectMapper = new ObjectMapper();
对象转JSON字符串
public static String convertToJson(Object object) {try {return objectMapper.writeValueAsString(object);} catch (JsonProcessingException e) {// 异常处理可以记录日志或抛出自定义异常throw new RuntimeException("Failed to convert object to JSON string", e);}
}
JSON字符串转对象
// 配置ObjectMapper以增强反序列化行为
static {// 忽略JSON中存在的未知字段mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);// 支持大小写不敏感的属性匹配mapper.configure(DeserializationFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
}public T convert(String json, TypeReference<T> typeReference) {try {return mapper.readValue(json, typeReference);} catch (JsonProcessingException e) {throw new IllegalArgumentException("Failed to parse JSON", e);}
}
- 通过使用TypeReference处理泛型类型、合理配置ObjectMapper以及优化异常处理机制,可以显著提升JSON字符串转换为Java泛型对象的效率和可靠性。
- 此外,将这些逻辑封装到一个泛型工具类中,不仅可以简化调用方的代码,还能提高代码的可维护性和复用性。