JackJson的一些方法
- package cn.edu.hbcf.common.jackjson;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Set;
- import org.codehaus.jackson.JsonGenerationException;
- import org.codehaus.jackson.JsonParseException;
- import org.codehaus.jackson.map.JsonMappingException;
- import org.codehaus.jackson.map.ObjectMapper;
- import org.codehaus.jackson.map.ser.FilterProvider;
- import org.codehaus.jackson.map.ser.impl.SimpleBeanPropertyFilter;
- import org.codehaus.jackson.map.ser.impl.SimpleFilterProvider;
- import org.codehaus.jackson.type.JavaType;
- import org.codehaus.jackson.type.TypeReference;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- /**
- * jackjson的一些转换方法
- *
- */
- public class JackJson {
- private static final Logger logger = LoggerFactory.getLogger(JackJson.class);
- /** 格式化时间的string */
- private static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
- /**
- * jackjson把json字符串转换为Java对象的实现方法
- *
- * <pre>
- * return JackJson.fromJsonToObject(this.answersJson, new TypeReference<List<StanzaAnswer>>() {
- * });
- * </pre>
- *
- * @param <T>
- * 转换为的java对象
- * @param json
- * json字符串
- * @param typeReference
- * jackjson自定义的类型
- * @return 返回Java对象
- */
- public static <T> T fromJsonToObject(String json, TypeReference<T> typeReference) {
- ObjectMapper mapper = new ObjectMapper();
- try {
- return (T)mapper.readValue(json, typeReference);
- } catch (JsonParseException e) {
- logger.error("JsonParseException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- /**
- * json转换为java对象
- *
- * <pre>
- * return JackJson.fromJsonToObject(this.answersJson, JackJson.class);
- * </pre>
- *
- * @param <T>
- * 要转换的对象
- * @param json
- * 字符串
- * @param valueType
- * 对象的class
- * @return 返回对象
- */
- public static <T> T fromJsonToObject(String json, Class<T> valueType) {
- ObjectMapper mapper = new ObjectMapper();
- try {
- return (T)mapper.readValue(json, valueType);
- } catch (JsonParseException e) {
- logger.error("JsonParseException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- /**
- * java对象转换为json字符串
- *
- * @param object
- * Java对象
- * @return 返回字符串
- */
- public static String fromObjectToJson(Object object) {
- ObjectMapper mapper = new ObjectMapper();
- try {
- return mapper.writeValueAsString(object);
- } catch (JsonGenerationException e) {
- logger.error("JsonGenerationException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- /**
- * java对象转换为json字符串
- *
- * @param object
- * 要转换的对象
- * @param filterName
- * 过滤器的名称
- * @param properties
- * 要过滤哪些字段
- * @return
- */
- @SuppressWarnings("deprecation")
- public static String fromObjectToJson(Object object, String filterName, Set<String> properties) {
- ObjectMapper mapper = new ObjectMapper();
- FilterProvider filters = new SimpleFilterProvider().addFilter(filterName, SimpleBeanPropertyFilter.serializeAllExcept(properties));
- try {
- return mapper.filteredWriter(filters).writeValueAsString(object);
- } catch (JsonGenerationException e) {
- logger.error("JsonGenerationException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- /**
- * java对象转换为json字符串
- *
- * @param object
- * 要转换的对象
- * @param filterName
- * 过滤器的名称
- * @param properties
- * 要过滤的字段名称
- * @return
- */
- @SuppressWarnings("deprecation")
- public static String fromObjectToJson(Object object, String filterName, String property) {
- ObjectMapper mapper = new ObjectMapper();
- FilterProvider filters = new SimpleFilterProvider().addFilter(filterName, SimpleBeanPropertyFilter.serializeAllExcept(property));
- try {
- return mapper.filteredWriter(filters).writeValueAsString(object);
- } catch (JsonGenerationException e) {
- logger.error("JsonGenerationException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- /**
- * java对象(包含日期字段或属性)转换为json字符串
- *
- * @param object
- * Java对象
- * @return 返回字符串
- */
- public static String fromObjectHasDateToJson(Object object) {
- ObjectMapper mapper = new ObjectMapper();
- mapper.getSerializationConfig().withDateFormat(new SimpleDateFormat(DATE_TIME_FORMAT));
- try {
- return mapper.writeValueAsString(object);
- } catch (JsonGenerationException e) {
- logger.error("JsonGenerationException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- /**
- * java对象(包含日期字段或属性)转换为json字符串
- *
- * @param object
- * Java对象
- * @param dateTimeFormatString
- * 自定义的日期/时间格式。该属性的值遵循java标准的date/time格式规范。如:yyyy-MM-dd
- * @return 返回字符串
- */
- public static String fromObjectHasDateToJson(Object object, String dateTimeFormatString) {
- ObjectMapper mapper = new ObjectMapper();
- mapper.getSerializationConfig().withDateFormat(new SimpleDateFormat(dateTimeFormatString));
- try {
- return mapper.writeValueAsString(object);
- } catch (JsonGenerationException e) {
- logger.error("JsonGenerationException: ", e);
- } catch (JsonMappingException e) {
- logger.error("JsonMappingException: ", e);
- } catch (IOException e) {
- logger.error("IOException: ", e);
- }
- return null;
- }
- public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
- ObjectMapper mapper = new ObjectMapper();
- return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
- }
- }
JackJson的一些方法的更多相关文章
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- JSON以及Java转换JSON的方法(前后端常用处理方法)
)); map.put("arr", new String[] { "a", "b" }); map.put("func" ...
- Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson
Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等 本人fastJson用了两年,也是从去年才开始接触Gson,希望下面的总结会对博友有用,至于Gso ...
- 分享知识-快乐自己:spring_Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson
心路历程: 在Controller中return 对象的时候,对象中的属性值中文部分在浏览器中 显示为问号?? 然后结果是这样的:?? 尝试排查原因: 中文乱码常有以下三种: 1.request.re ...
- JSON以及Java转换JSON的方法(前后端经常使用处理方法)
本文主要讲述例如以下几个内容: 1.JSON定义以及JSON的特性 2.怎样在JavaScript中解释JSON格式数据 3.怎样在Java代码中使用JSON(讲对象转换成JSON对象以及解释JSON ...
- springboot2.0入门(三)----定义编程风格+jackjson使用+postMan测试
一.RESTFul风格API 1.优点: )看Url就知道要什么资源 )看http method就知道针对资源干什么 )看http status code就知道结果如何 HTTP方法体现对资源的操作: ...
- JPA 一对多双向映射 结果对象相互迭代 造成堆栈溢出问题方法
问题: JPA 在双向映射时,会相互包含对方的实例,相互引用,造成递归迭代,堆栈溢出(java.lang.StackOverflowError). 分析: 在后端向前端传递的时候会将数据序列化,转为j ...
- mapreduce多文件输出的两方法
mapreduce多文件输出的两方法 package duogemap; import java.io.IOException; import org.apache.hadoop.conf ...
- 【.net 深呼吸】细说CodeDom(6):方法参数
本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...
随机推荐
- iOS:详解MJRefresh刷新加载更多数据的第三方库
原文链接:http://www.ios122.com/2015/08/mjrefresh/ 简介 MJRefresh这个第三方库是李明杰老师的杰作,这个框架帮助我们程序员减轻了超级多的麻烦,节约了开发 ...
- RMAN 还原与恢复
一. RMAN 还原与恢复基础 在RMAN 用于中,还原与恢复是两个不同的概念.还原(restore):指访问先前生成的备份,从中得到一个或多个对象,然后在磁盘上的某个位置还原这些对象.恢复(reco ...
- 阿里云ECS主机内核调优
#阿里云内核调优 cat /etc/sysctl.conf vm.swappiness = 0net.ipv4.neigh.default.gc_stale_time=120 # see detail ...
- 2017.12.27 sqlSessionFactory和sqlSession(to be continued)
参考来自:<深入浅出MyBatis技术原理与实践-第6章 > 1.SqlSessionFactory SqlSessionFactory是一个接口,最重要的功能是提供SqlSession. ...
- 一般源码安装添加的GD库 是不支持 jpeg 格式的图片的
一般源码安装添加的GD库 是不支持 jpeg 格式的图片的,只支持如下格式 GD Support enabled GD Version bundled (2.0.34 compatible) GIF ...
- [Angular] Improve Server Communication in Ngrx Effects with NX Data Persistence in Angular
Communicating with a remote server via HTTP presents an extra level of complexity as there is an inc ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何在同一台PC上运行多个TwinCAT程序
右击桌面右下角的TC2图标,切换到PLC Configuration,然后在Plc Settings中设置数量为4(TC2最多可以运行的数量是4个),然后点击Apply 可能需要输入登录用户名和密 ...
- ssl证书之certbot
一.安装 1.下载压缩包:#wget https://github.com/certbot/certbot/archive/master.zip 2.解压包 3.官方文档https://github. ...
- C++11: reference_wrapper
https://oopscenities.net/2012/08/09/reference_wrapper/ Look at this piece of code: 1 2 3 4 5 6 7 8 9 ...
- 【Spring实战】—— 6 内部Bean
本篇文章讲解了Spring的通过内部Bean设置Bean的属性. 类似内部类,内部Bean与普通的Bean关联不同的是: 1 普通的Bean,在其他的Bean实例引用时,都引用同一个实例. 2 内部B ...