spring boot项目实战之工具篇(json)
来源:互联网 发布:xbox手柄驱动mac 编辑:程序博客网 时间:2024/06/08 03:42
对象转json、json转对象是我们开发过程中经常遇到的,提取一套高效、易用的工具类会让开发过程舒爽不少,下面提供一个基于jackson包的常用json工具方法。
1、添加maven依赖
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId></dependency><dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version></dependency>
2、对象转为json
private static final ObjectMapper mapper = new ObjectMapper();/** * 将对象转化为json * @author yangwenkui * @time 2017年3月16日 下午2:55:10 * @param obj 待转化的对象 * @return 当转化发生异常时返回null */public static String toJson(Object obj){ if(obj == null){ return null; } try { return mapper.writeValueAsString(obj); } catch (IOException e) { logger.error(String.format("obj=[%s]", obj.toString()), e); } return null;}
3、json转为对象
/** * 将json转化为对象 * @author yangwenkui * @time 2017年3月16日 下午2:56:26 * @param json json对象 * @param clazz 待转化的对象类型 * @return 当转化发生异常时返回null */public static <T> T fromJson(String json,Class<T> clazz){ if(json == null){ return null; } try { return mapper.readValue(json, clazz); } catch (IOException e) { logger.error(String.format("json=[%s]", json), e); } return null;}
4、json转为集合对象
/** * 将json对象转化为集合类型 * @author yangwenkui * @time 2017年3月16日 下午2:57:15 * @param json json对象 * @param collectionClazz 具体的集合类的class,如:ArrayList.class * @param clazz 集合内存放的对象的class * @return */@SuppressWarnings("rawtypes")public static <T> Collection<T> fromJson(String json,Class<? extends Collection> collectionClazz,Class<T> clazz){ if(json == null){ return null; } try { Collection<T> collection = mapper.readValue(json, getCollectionType(collectionClazz,clazz)); return collection; } catch (IOException e) { logger.error(String.format("json=[%s]", json), e); } return null;}private static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) { return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); }
小结
- 常用的JSON技术有,json-lib、Jackson、Gson、FastJson,在易用性、性能等方面Jackson都表现不错,推荐使用Jackson包;
- 将对象对象存入缓存、从缓存内取出字符串转为对象、REST API接口返回结果转为对象等诸多场景下都有对象和json之间的转换操作,“见到经常出现的重复代码,提取出来作为通用方法是一个好的习惯”。
完整代码请参考github内rest-base项目com.onecoderspace.base.util.JacksonHelper。
https://github.com/q7322068/rest-base
阅读全文
0 0
- spring boot项目实战之工具篇(json)
- spring boot项目实战之工具篇(ognl)
- Spring Boot实战之Spring项目的搭建
- spring boot项目实战:事务
- spring boot项目实战:redis
- spring boot项目实战:JPA
- Spring Boot实战之项目搭建(二)
- spring boot项目实战之公共代码抽取
- Spring Boot实战之入门
- Spring Boot实战之单元测试
- Spring Boot实战之单元测试
- Spring Boot实战之Maven
- spring boot实战之JSP
- Spring Boot实战之单元测试
- Spring Boot实战01-创建Spring Boot项目
- Spring Boot实战之Spring基础配置
- spring boot项目实战:跨域问题解决
- spring boot项目实战:swagger2在线文档
- Servlet 学习笔记 RequestDispatcher的调派请求
- JavaNote4
- NYOJ-117/atcoder ARC 75-E
- JS基础 对象 循环
- 关于xutils的使用
- spring boot项目实战之工具篇(json)
- el和jsp内置对象的作用于
- Java一些正则的用法
- c++ switch内部的变量定义
- Spring MVC入门
- EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
- window版tomcat或zookeper出现闪退问题解决方案
- Spring.net的理解与初使用
- 小咖秀视频怎么下载? 小咖秀视频去logo保存到手机的方法