public class JsonUtil extends Object
| Modifier and Type | Field and Description |
|---|---|
protected static org.slf4j.Logger |
log |
protected static com.fasterxml.jackson.databind.ObjectMapper |
OM |
| Constructor and Description |
|---|
JsonUtil() |
| Modifier and Type | Method and Description |
|---|---|
static com.fasterxml.jackson.databind.JavaType |
getCollectionType(Class<?> collectionClass,
Class<?>... elementClasses)
获取泛型的 Collection Type
|
static com.fasterxml.jackson.databind.JsonNode |
key2Node(String json,
List<JsonNodeInfo> infos)
获取到json节点的值 可以多层获取
|
static String |
key2Val(String json,
List<JsonNodeInfo> infos)
获取json节点的值 可以多层获取
最后节点是最后节点才可以
|
static String |
key2Val(String json,
String key)
获取json节点的值
|
static <T> T |
mapPojo(Map<String,Object> map,
Class<T> clazz)
map转为 bean
|
static <T> T |
nodeBean(com.fasterxml.jackson.databind.JsonNode node,
Class<T> clazz)
JsonNode 转bean
|
private static com.fasterxml.jackson.databind.JsonNode |
nodeValue(com.fasterxml.jackson.databind.JsonNode node,
JsonNodeInfo info)
获取节点信息
|
static com.fasterxml.jackson.databind.ObjectMapper |
om()
获取对象
|
static String |
printerJson(Object obj)
美化json
|
static String |
toJson(Object obj)
转换为 JSON 字符串
|
static Map<String,Object> |
toMap(String json)
json 字符串转为map
|
static <T> Map<String,T> |
toMap(String json,
Class<T> clazz)
json 字符串转为map
value的类型一样
|
static <T extends Serializable> |
toNode(T t)
对象转 JsonNode
|
static <T> T |
toPojo(String json,
Class<T> clazz)
转换为 JavaBean
|
static <T> T |
toPojo(String json,
Function<com.fasterxml.jackson.databind.ObjectMapper,com.fasterxml.jackson.databind.JavaType> function)
反序列化 嵌套泛型带参数的 示例:
bean 结构如下:
public class IotResponse<T>
private T data;
public class IotPageResponse<T>
private List<T> list;
public class IotCardInfoResponse
使用方式:
Function<ObjectMapper, JavaType> f = om -> {
TypeFactory factory = om.getTypeFactory();
JavaType pageType = factory.constructParametricType(IotPageResponse.class, IotCardInfoResponse.class);
return factory.constructParametricType(IotResponse.class, pageType);
};
IotResponse<IotPageResponse<IotCardInfoResponse>> response = JsonUtil.toPojo(json, f);
|
static <T> List<T> |
toPojos(String json,
Class<T> clazz)
转换为 JavaBean 集合
|
static <T> T |
tryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper,T> parse)
解析json
|
protected static <T> T |
tryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper,T> parse,
com.fasterxml.jackson.databind.ObjectMapper om)
解析json
|
protected static final com.fasterxml.jackson.databind.ObjectMapper OM
protected static final org.slf4j.Logger log
public static String printerJson(Object obj)
obj - 对象public static Map<String,Object> toMap(String json)
json - jsonpublic static <T> Map<String,T> toMap(String json, Class<T> clazz)
json - jsonclazz - value 类型public static <T> T mapPojo(Map<String,Object> map, Class<T> clazz)
T - 类型map - mapclazz - 类型public static <T> T toPojo(String json, Class<T> clazz)
json - jsonclazz - 类型public static <T> T toPojo(String json, Function<com.fasterxml.jackson.databind.ObjectMapper,com.fasterxml.jackson.databind.JavaType> function)
public class IotResponse<T>
private T data;
public class IotPageResponse<T>
private List<T> list;
public class IotCardInfoResponse
使用方式:
Function<ObjectMapper, JavaType> f = om -> {
TypeFactory factory = om.getTypeFactory();
JavaType pageType = factory.constructParametricType(IotPageResponse.class, IotCardInfoResponse.class);
return factory.constructParametricType(IotResponse.class, pageType);
};
IotResponse<IotPageResponse<IotCardInfoResponse>> response = JsonUtil.toPojo(json, f);
T - 实体json - jsonfunction - 获取泛型的函数public static <T> List<T> toPojos(String json, Class<T> clazz)
json - jsonclazz - 类型public static <T> T nodeBean(com.fasterxml.jackson.databind.JsonNode node,
Class<T> clazz)
T - 实体对象类型node - nodeclazz - 类型public static com.fasterxml.jackson.databind.JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses)
collectionClass - 泛型的CollectionelementClasses - 元素类public static String key2Val(String json, String key)
json - jsonkey - 值public static String key2Val(String json, List<JsonNodeInfo> infos)
json - jsoninfos - 每层的信息public static com.fasterxml.jackson.databind.JsonNode key2Node(String json, List<JsonNodeInfo> infos)
json - jsoninfos - 每层的信息private static com.fasterxml.jackson.databind.JsonNode nodeValue(com.fasterxml.jackson.databind.JsonNode node,
JsonNodeInfo info)
node - 节点info - 具体信息public static com.fasterxml.jackson.databind.ObjectMapper om()
public static <T extends Serializable> com.fasterxml.jackson.databind.JsonNode toNode(T t)
T - 类型t - 入参public static <T> T tryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper,T> parse)
T - 返回类型parse - 执行函数protected static <T> T tryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper,T> parse, com.fasterxml.jackson.databind.ObjectMapper om)
T - 返回类型parse - 执行函数om - omCopyright © 2024. All rights reserved.