import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.JavaType;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.PropertyNamingStrategy;import java.util.List;public class JsonUtils { ???// 定义jackson对象 ???private static final ObjectMapper MAPPER = new ObjectMapper(); ???/** ????* 将对象转换成json字符串。 ????* <p>Title: pojoToJson</p> ????* <p>Description: </p> ????* @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> T jsonToPojo(String jsonData, Class<T> beanType) { ???????????????ObjectMapper mapper = new ObjectMapper(); ???????mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); ???????mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES); ???????????????try { ???????????T t = mapper.readValue(jsonData, beanType); ???????????return t; ???????} catch (Exception e) { ???????????e.printStackTrace(); ???????} ???????return null; ???} ???????/** ????* 将json数据转换成pojo对象list ????* <p>Title: jsonToList</p> ????* <p>Description: </p> ????* @param jsonData ????* @param beanType ????* @return ????*/ ???public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) { ???????JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); ???????try { ???????????List<T> list = MAPPER.readValue(jsonData, javaType); ???????????return list; ???????} catch (Exception e) { ???????????e.printStackTrace(); ???????} ???????????????return null; ???} ???????/** ????* 获取泛型的Collection Type ????* @description 获取泛型的Collection Type ,如List<User> ????* @param collectionClass ???ArrayList.class ????* @param elementClasses ???User.class ????* @return ????* @author 刘育 ????* @version 1.0 ????* @date:2016年12月20日下午3:43:27 ????*/ ???public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) { ???????ObjectMapper mapper = new ObjectMapper(); ???????return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); ??????} ???????????????public static <T> T ?jsonToObject(String content, Class<T> t){ ???????try { ???????????ObjectMapper om=new ObjectMapper(); ???????????return om.readValue(content, t); ???????} catch (Exception e) { ???????????return null; ???????} ???} ???}
JsonUtils
原文地址:https://www.cnblogs.com/blakflash000/p/9406833.html