package com.xxl.job.admin.core.util;
|
|
import com.fasterxml.jackson.core.JsonGenerationException;
|
import com.fasterxml.jackson.core.JsonParseException;
|
import com.fasterxml.jackson.databind.JavaType;
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
import java.io.IOException;
|
|
/**
|
* Jackson util
|
*
|
* 1、obj need private and set/get;
|
* 2、do not support inner class;
|
*
|
* @author xuxueli 2015-9-25 18:02:56
|
*/
|
public class JacksonUtil {
|
private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class);
|
|
private final static ObjectMapper objectMapper = new ObjectMapper();
|
public static ObjectMapper getInstance() {
|
return objectMapper;
|
}
|
|
/**
|
* bean、array、List、Map --> json
|
*
|
* @param obj
|
* @return json string
|
* @throws Exception
|
*/
|
public static String writeValueAsString(Object obj) {
|
try {
|
return getInstance().writeValueAsString(obj);
|
} catch (JsonGenerationException e) {
|
logger.error(e.getMessage(), e);
|
} catch (JsonMappingException e) {
|
logger.error(e.getMessage(), e);
|
} catch (IOException e) {
|
logger.error(e.getMessage(), e);
|
}
|
return null;
|
}
|
|
/**
|
* string --> bean、Map、List(array)
|
*
|
* @param jsonStr
|
* @param clazz
|
* @return obj
|
* @throws Exception
|
*/
|
public static <T> T readValue(String jsonStr, Class<T> clazz) {
|
try {
|
return getInstance().readValue(jsonStr, clazz);
|
} catch (JsonParseException e) {
|
logger.error(e.getMessage(), e);
|
} catch (JsonMappingException e) {
|
logger.error(e.getMessage(), e);
|
} catch (IOException e) {
|
logger.error(e.getMessage(), e);
|
}
|
return null;
|
}
|
|
/**
|
* string --> List<Bean>...
|
*
|
* @param jsonStr
|
* @param parametrized
|
* @param parameterClasses
|
* @param <T>
|
* @return
|
*/
|
public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) {
|
try {
|
JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses);
|
return getInstance().readValue(jsonStr, javaType);
|
} catch (JsonParseException e) {
|
logger.error(e.getMessage(), e);
|
} catch (JsonMappingException e) {
|
logger.error(e.getMessage(), e);
|
} catch (IOException e) {
|
logger.error(e.getMessage(), e);
|
}
|
return null;
|
}
|
}
|