当前位置: 首页 > news >正文

Java json工具类,jackson工具类,ObjectMapper工具类

Java json工具类,jackson工具类,ObjectMapper工具类

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年8月23日 15:39:18 星期二

http://fanshuyao.iteye.com/

 

附件有下载!

 

package com.chinagas.org.common.utils;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParser.Feature;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.JavaType;
import org.codehaus.jackson.type.TypeReference;


public class JacksonUtils {
	
	/**
	 * 实体对象转换成Json字符串
	 * @param t 实体对象T
	 * @return T
	 */
	public  static <T> String objectToJson(T t){
		ObjectMapper mapper = new ObjectMapper();
		mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);//设置可用单引号
		mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//设置字段可以不用双引号包括
		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));//设置时间格式
		try {
			return mapper.writeValueAsString(t);
		} catch (JsonGenerationException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * Json字符串转换成实体对象
	 * @param json
	 * @param clazz 实体对象所属类Class
	 * @return
	 */
	public  static <T> T jsonToObject(String json, Class<T> clazz){
		ObjectMapper mapper = new ObjectMapper();
		mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);//设置可用单引号
		mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//设置字段可以不用双引号包括
		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));//设置时间格式
		mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);//设置实体无属性和json串属性对应时不会出错
		try {
			return mapper.readValue(json, clazz);
		} catch (JsonGenerationException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * Json字符串转换成List
	 * @param json
	 * @param clazz 实体对象所属类Class
	 * @return
	 */
	public  static <T> T jsonToList(String json, Class<T> clazz){
		ObjectMapper mapper = new ObjectMapper();
		mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);//设置可用单引号
		mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//设置字段可以不用双引号包括
		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
		mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
		try {
			JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, clazz);
			return mapper.readValue(json, javaType);
		} catch (JsonGenerationException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * Json字符串转换成List
	 * @param json
	 * @param typeReference TypeReference<T>
	 * <p>
	 * 	<pre>new TypeReference<List<User>>() {}</pre>
	 * </p>
	 * @return
	 */
	public static <T> T jsonToList(String json, TypeReference<T> typeReference){
		ObjectMapper mapper = new ObjectMapper();
		mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);//设置可用单引号
		mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//设置字段可以不用双引号包括
		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
		mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
		try {
			return mapper.readValue(json, typeReference);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 *  美化输出
	 * @param t
	 * @return
	 */
	public  static <T> String console(T t){
		ObjectMapper mapper = new ObjectMapper();
		mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);//设置可用单引号
		mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//设置字段可以不用双引号包括
		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
		String json = "";
		try {
			json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(t);
		} catch (JsonGenerationException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return json;
	}
	
}

 

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2016年8月23日 15:39:18 星期二

http://fanshuyao.iteye.com/

相关文章:

  • PostgreSQL 最佳实践 - 任意时间点恢复源码分析
  • 第一次作业p7 1-1 1-2 1-6
  • 华为VRRP配置
  • 你掌握的技术排第几?
  • 解决mysql 1062 主从错误
  • LINKEDSERVER 与 ALIAS
  • while、dowhile、switchcase 循环嵌套、穷举、迭代
  • Git安装
  • 你真的了解UIScrollView吗?
  • Python中的split()函数的使用方法 详解
  • Percona TokuDB
  • IOS 打包所遇到的问题以及解决方案
  • APP测试总结2
  • iOS视频压缩存储至本地并上传至服务器-b
  • js实现水平伸缩菜单
  • 《Java编程思想》读书笔记-对象导论
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 2018一半小结一波
  • 4. 路由到控制器 - Laravel从零开始教程
  • es6(二):字符串的扩展
  • Invalidate和postInvalidate的区别
  • php面试题 汇集2
  • Redis 懒删除(lazy free)简史
  • tab.js分享及浏览器兼容性问题汇总
  • V4L2视频输入框架概述
  • 阿里云前端周刊 - 第 26 期
  • 电商搜索引擎的架构设计和性能优化
  • 翻译--Thinking in React
  • 汉诺塔算法
  • 欢迎参加第二届中国游戏开发者大会
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 开源SQL-on-Hadoop系统一览
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何胜任知名企业的商业数据分析师?
  • 数据科学 第 3 章 11 字符串处理
  • 译自由幺半群
  • 原生Ajax
  • 在Unity中实现一个简单的消息管理器
  • 智能合约Solidity教程-事件和日志(一)
  • No resource identifier found for attribute,RxJava之zip操作符
  • ionic异常记录
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 说说我为什么看好Spring Cloud Alibaba
  • #pragma data_seg 共享数据区(转)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (10)ATF MMU转换表
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (南京观海微电子)——I3C协议介绍
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (算法)Travel Information Center
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)甲方乙方——赵民谈找工作