public class JacksonJsonUtil {
private static ObjectMapper mapper;
/**
* 獲取ObjectMapper實例
* @param createNew 方式:true,新實例;false,存在的mapper實例
* @return
*/
public static synchronized ObjectMapper getMapperInstance(boolean createNew) {
if (createNew) {
return new ObjectMapper();
} else if (mapper == null) {
mapper = new ObjectMapper();
}
return mapper;
}
/**
* 將java對象轉換成json字符串
* @param obj 准備轉換的對象
* @return json字符串
* @throws Exception
*/
public static String beanToJson(Object obj) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(false);
String json =objectMapper.writeValueAsString(obj);
return json;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 將java對象轉換成json字符串
* @param obj 准備轉換的對象
* @param createNew ObjectMapper實例方式:true,新實例;false,存在的mapper實例
* @return json字符串
* @throws Exception
*/
public static String beanToJson(Object obj,Boolean createNew) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(createNew);
String json =objectMapper.writeValueAsString(obj);
return json;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 將json字符串轉換成java對象
* @param json 准備轉換的json字符串
* @param cls 准備轉換的類
* @return
* @throws Exception
*/
public static Object jsonToBean(String json, Class<?> cls) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(false);
Object vo = objectMapper.readValue(json, cls);
return vo;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 將json字符串轉換成java對象
* @param json 准備轉換的json字符串
* @param cls 准備轉換的類
* @param createNew ObjectMapper實例方式:true,新實例;false,存在的mapper實例
* @return
* @throws Exception
*/
public static Object jsonToBean(String json, Class<?> cls,Boolean createNew) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(createNew);
Object vo = objectMapper.readValue(json, cls);
return vo;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
}
