package com.sandu.ximon.admin.utils;
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
import jdk.nashorn.internal.ir.ObjectNode;
|
|
import java.io.IOException;
|
|
public class JsonUtil {
|
private static ObjectMapper objectMapper;
|
|
static {
|
objectMapper = new ObjectMapper();
|
|
// 璁剧疆FAIL_ON_EMPTY_BEANS灞炴�э紝褰撳簭鍒楀寲绌哄璞′笉瑕佹姏寮傚父
|
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
|
|
// 璁剧疆FAIL_ON_UNKNOWN_PROPERTIES灞炴�э紝褰揓SON瀛楃涓蹭腑瀛樺湪Java瀵硅薄娌℃湁鐨勫睘鎬э紝蹇界暐
|
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
}
|
|
/**
|
* Convert Object to JsonString
|
*
|
* @param jsonObj
|
* @return
|
*/
|
public static String jsonObj2Sting(Object jsonObj) {
|
String jsonString = null;
|
|
try {
|
jsonString = objectMapper.writeValueAsString(jsonObj);
|
} catch (IOException e) {
|
System.out.printf("pasre json Object[{}] to string failed.",jsonString);
|
}
|
|
return jsonString;
|
}
|
|
/**
|
* Convert JsonString to Simple Object
|
*
|
* @param jsonString
|
* @param cls
|
* @return
|
*/
|
public static <T> T jsonString2SimpleObj(String jsonString, Class<T> cls) {
|
T jsonObj = null;
|
|
try {
|
jsonObj = objectMapper.readValue(jsonString, cls);
|
} catch (IOException e) {
|
System.out.printf("pasre json Object[{}] to string failed.",jsonString);
|
}
|
|
return jsonObj;
|
}
|
|
/**
|
* Method that will convert object to the ObjectNode.
|
*
|
* @param object
|
* the source data; if null, will return null.
|
* @return the ObjectNode data after converted.
|
* @throws Exception
|
*/
|
public static <T> ObjectNode convertObject2ObjectNode(T object)
|
throws Exception {
|
if (null == object) {
|
return null;
|
}
|
|
ObjectNode objectNode = null;
|
|
if (object instanceof String) {
|
objectNode = convertJsonStringToObject((String) object,
|
ObjectNode.class);
|
} else {
|
objectNode = convertValue(object, ObjectNode.class);
|
}
|
|
return objectNode;
|
}
|
|
/**
|
* Method that will convert the json string to destination by the type(cls).
|
*
|
* @param jsonString
|
* the source json string; if null, will return null.
|
* @param cls
|
* the destination data type.
|
* @return
|
* @throws Exception
|
*/
|
public static <T> T convertJsonStringToObject(String jsonString,
|
Class<T> cls) throws Exception {
|
if (StringUtil.strIsNullOrEmpty(jsonString)) {
|
return null;
|
}
|
|
try {
|
T object = objectMapper.readValue(jsonString, cls);
|
return object;
|
} catch (Exception e) {
|
throw new Exception(e);
|
}
|
}
|
|
/**
|
* Method that will convert from given value into instance of given value
|
* type.
|
*
|
* @param fromValue
|
* @param toValueType
|
* @return
|
* @throws Exception
|
*/
|
private static <T> T convertValue(Object fromValue, Class<T> toValueType)
|
throws Exception {
|
try {
|
return objectMapper.convertValue(fromValue, toValueType);
|
} catch (IllegalArgumentException e) {
|
throw new Exception(e);
|
}
|
}
|
|
|
}
|