import java.io.IOException; import java.text.SimpleDateFormat; import java.util.TimeZone; import org.apache.log4j.Logger; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; public class JsonUtils { private static Logger logger = Logger.getLogger(JsonUtils.class); private static final ObjectMapper objectMapper; static { objectMapper = new ObjectMapper(); //去掉默认的时间戳格式 objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); //设置为中国上海时区 objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); objectMapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false); //空值不序列化 objectMapper.setSerializationInclusion(Include.NON_NULL); //反序列化时,属性不存在的兼容处理 objectMapper.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); //序列化时,日期的统一格式 objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //单引号处理 objectMapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); } public static <T> T toObject(String json, Class<T> clazz) { try { return objectMapper.readValue(json, clazz); } catch (JsonParseException e) { logger.error(e.getMessage(), e); } catch (JsonMappingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } return null; } public static <T> String toJson(T entity) { try { return objectMapper.writeValueAsString(entity); } catch (JsonGenerationException e) { logger.error(e.getMessage(), e); } catch (JsonMappingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } return null; } public static <T> T toCollection(String json, TypeReference<T> typeReference) { try { return objectMapper.readValue(json, typeReference); } catch (JsonParseException e) { logger.error(e.getMessage(), e); } catch (JsonMappingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } return null; } }
相关推荐
jackson-databind-2.4.2.jar jackson-core-2.4.2.jar jackson-annotations-2.4.0.jar
jackson-annotations-2.8.5,jackson-core-2.8.5,jackson-databind-2.8.5的jar包及source、doc的jar包
jackson-databind, Jackson通用数据绑定包( 2.x ) 概述这个项目包含 Jackson数据处理器的通用数据绑定功能和树模型。 它构建在核心流解析器/生成器包之上,并使用 Jackson注解( ) 。 项目许可证在 Apache许可 2.0.当...
说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司中必用的组件之一,常用的还用阿里的Fastjson,但是由于一些原因bug与漏洞是在是太多,在注重安全的公司直接被...
org.codehaus.jackson.mapper.jar,亲测可用的jar包!
jackson-annotations.jar jackson-core.jar jackson-databind.jar
1、SpringMVC 处理json数据所需jackson相关jar包. jackson-annotations-2.5.0.jar , jackson-core-2.5.0.jar,jackson-databind-2.5.0....2、该版本jar包可以解决转json数据报错:can not access a member of class ...
官方发布最新版本,当中修复了一处反序列化远程代码执行漏洞(CVE-2020-24616),漏洞存在于br.com.anteros:Anteros-DBCP库类中,攻击者可以通过精心构造的请求包在受影响的 Jackson 服务器上进行远程代码执行。
如果是新项目,建议直接用2x,即fasterxml jackson。 P.S. Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 官网:http://wiki.fasterxml.com/JacksonHome 三个主要...
com.fasterxml.jackson--2.2.3.jar Java工具包 以便下次使用
Spring4.x.x MVC 中使用jackson的包进行json转换。需要的jar包
jackson.jar包jackson.jar包jackson.jar包jackson.jar包jackson.jar包jackson.jar包jackson.jar包jackson.jar包jackson.jar包
jar包,官方版本,自测可用
com.springsource.org.codehaus.jackson.mapper-1.0.0.jar
jackson.jar 工具类
对于Spring4.X版本的适合,因为Spring3.0和Spring4.0有使用差距
该项目包含用于的通用数据绑定功能和树模型。 它基于 (流解析器/生成器)包构建,并使用进行配置。 Project已获得。 虽然Jackson的原始用例是JSON数据绑定,但是现在只要存在解析器和生成器实现,它就可以用于读取...
jacksonapi.zip