com.qbit.httpclient.util.JsonUtil Maven / Gradle / Ivy
package com.qbit.httpclient.util;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.*;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
import java.util.Map;
/**
* @author klover
* description JsonUtil
* date 2022/10/14 11:30
*/
public class JsonUtil {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
static {
OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL);
OBJECT_MAPPER.configure(SerializationFeature.INDENT_OUTPUT, Boolean.TRUE);
OBJECT_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
public static JavaType getCollectionType(Class collectionClass, Class... elementClasses) {
return OBJECT_MAPPER.getTypeFactory().constructParametricType(collectionClass, elementClasses);
}
public static JavaType getCollectionType(Class collectionClass, JavaType... parameterTypes) {
return OBJECT_MAPPER.getTypeFactory().constructParametricType(collectionClass, parameterTypes);
}
public static T convertValue(Object fromValue, TypeReference toValueTypeRef) {
try {
return OBJECT_MAPPER.convertValue(fromValue, toValueTypeRef);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
return null;
}
public static T toBean(Object obj, Class clazz) {
return toBean(toJSONString(obj), clazz);
}
public static T toBean(String str, Class clazz) {
if (StringUtils.isEmpty(str)) {
return null;
}
try {
return OBJECT_MAPPER.readValue(str, clazz);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static T toBean(Object obj, JavaType javaType) {
return toBean(toJSONString(obj), javaType);
}
public static T toBean(String str, JavaType javaType) {
try {
return OBJECT_MAPPER.readValue(str, javaType);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static Map parse(String str) {
try {
return OBJECT_MAPPER.readValue(str, new TypeReference