Json反序列化对象通用工具类

 

 

一、json需要依赖的包

 

 

jackson.version可以参考地址:http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core

 



	com.fasterxml.jackson.core
	jackson-core
	${jackson.version}


	com.fasterxml.jackson.core
	jackson-annotations
	${jackson.version}


	com.fasterxml.jackson.core
	jackson-databind
	${jackson.version}

 

 

 

二、json反序列化工具类

 

 

 

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUtils {

	// 定义jackson对象
	private static final ObjectMapper MAPPER = new ObjectMapper();
	static {
		// 忽略JSON中没有的字段,防止反序列化对象的时候报找不到属性字段的异常
		MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		// 如果json字符串中含有新行时,加上这个
		MAPPER.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
		//空值转换异常
		MAPPER.configure(JsonParser.Feature.ALLOW_COMMENTS, true) ;   
	}

	/**
	 * 将对象转换成json字符串。
	 * 

* Title: pojoToJson *

*

* Description: *

* * @param data * @return */ public static String objectToJson(Object data) { try { String string = MAPPER.writeValueAsString(data); return string; } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } /** * 将json结果集转化为对象 * * @param jsonData * json数据 * @param clazz * 对象中的object类型 * @return */ public static T jsonToPojo(String jsonData, Class beanType) { try { T t = MAPPER.readValue(jsonData, beanType); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将json数据转换成pojo对象list *

* Title: jsonToList *

*

* Description: *

* * @param jsonData * @param beanType * @return */ public static List jsonToList(String jsonData, Class beanType) { JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); try { List list = MAPPER.readValue(jsonData, javaType); return list; } catch (Exception e) { e.printStackTrace(); return null; } } /** * json字符串转Map集合 * @param jsonStr * @return * @throws IOException */ @SuppressWarnings("unchecked") public static Map parseMap(String jsonStr) throws IOException { Map map = MAPPER.readValue(jsonStr, Map.class); return map; } /** * json字符串转List集合 * @param jsonStr * @return * @throws IOException */ public static List parseList(String jsonStr) throws IOException { return MAPPER.readValue(jsonStr, new TypeReference>() {}); } }

 

你可能感兴趣的:(Java)