zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    20155229 2016-2017-2 《Java程序设计》第九周学习总结
    20155229实验二 《Java面向对象程序设计》实验报告
    10.11课后练习——MyOD系统调用版本
    2017-2018-1 20155223 《信息安全系统设计基础》第5周学习总结
    课堂实践及课后练习9.27@20155223
    2017-2018-1 20155223 《信息安全系统设计基础》第3周学习总结
    20155223 2016-2017-2《Java程序设计》课程总结
    Java第五次实验报告
    课堂代码练习补交
    第四次实验报告
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/6227103.html
Copyright © 2011-2022 走看看