Package cn.sinozg.applet.common.utils
Class JsonUtil
java.lang.Object
cn.sinozg.applet.common.utils.JsonUtil
json 工具类
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic com.fasterxml.jackson.databind.JavaTypegetCollectionType(Class<?> collectionClass, Class<?>... elementClasses) 获取泛型的 Collection Typestatic boolean判断是否为json 只是初级判断,没有严格校验json的内容static com.fasterxml.jackson.databind.JsonNodekey2Node(String json, List<JsonNodeInfo> infos) 获取到json节点的值 可以多层获取static String获取json节点的值static Stringkey2Val(String json, List<JsonNodeInfo> infos) 获取json节点的值 可以多层获取 最后节点是最后节点才可以static <T> Tmap转为 beanstatic <T> TJsonNode 转beanprivate static com.fasterxml.jackson.databind.JsonNodenodeValue(com.fasterxml.jackson.databind.JsonNode node, JsonNodeInfo info) 获取节点信息static com.fasterxml.jackson.databind.ObjectMapperom()获取对象static StringprinterJson(Object obj) 美化jsonstatic String转换为 JSON 字符串json 字符串转为mapjson 字符串转为map value的类型一样static <T extends Serializable>
com.fasterxml.jackson.databind.JsonNodetoNode(T t) 对象转 JsonNodestatic <T> T转换为 JavaBeanstatic <T> TtoPojo(String json, Function<com.fasterxml.jackson.databind.ObjectMapper, com.fasterxml.jackson.databind.JavaType> function) 反序列化 嵌套泛型带参数的 示例:static <T> List<T>转换为 JavaBean 集合static <T> TtryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper, T> parse) 解析jsonprotected static <T> TtryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper, T> parse, com.fasterxml.jackson.databind.ObjectMapper om) 解析json
-
Field Details
-
OM
protected static final com.fasterxml.jackson.databind.ObjectMapper OM -
log
protected static final org.slf4j.Logger log
-
-
Constructor Details
-
JsonUtil
public JsonUtil()
-
-
Method Details
-
printerJson
美化json- Parameters:
obj- 对象- Returns:
- 美化后的json
-
toJson
转换为 JSON 字符串- Parameters:
obj- 对象- Returns:
- json
-
toMap
json 字符串转为map- Parameters:
json- json- Returns:
- map
-
toMap
json 字符串转为map value的类型一样- Parameters:
json- jsonclazz- value 类型- Returns:
- map
-
mapPojo
map转为 bean- Type Parameters:
T- 类型- Parameters:
map- mapclazz- 类型- Returns:
- bean
-
toPojo
转换为 JavaBean- Parameters:
json- jsonclazz- 类型- Returns:
- 实体对象
-
toPojo
public 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 IotCardInfoResponseFunction<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);- Type Parameters:
T- 实体- Parameters:
json- jsonfunction- 获取泛型的函数- Returns:
- 结果
-
toPojos
转换为 JavaBean 集合- Parameters:
json- jsonclazz- 类型- Returns:
- 对象集合
-
nodeBean
JsonNode 转bean- Type Parameters:
T- 实体对象类型- Parameters:
node- nodeclazz- 类型- Returns:
- 实体
-
getCollectionType
public static com.fasterxml.jackson.databind.JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) 获取泛型的 Collection Type- Parameters:
collectionClass- 泛型的CollectionelementClasses- 元素类- Returns:
- JavaType Java类型
-
key2Val
获取json节点的值- Parameters:
json- jsonkey- 值- Returns:
- 对应的值
-
key2Val
获取json节点的值 可以多层获取 最后节点是最后节点才可以- Parameters:
json- jsoninfos- 每层的信息- Returns:
- 值
-
key2Node
public static com.fasterxml.jackson.databind.JsonNode key2Node(String json, List<JsonNodeInfo> infos) 获取到json节点的值 可以多层获取- Parameters:
json- jsoninfos- 每层的信息- Returns:
- 节点
-
nodeValue
private static com.fasterxml.jackson.databind.JsonNode nodeValue(com.fasterxml.jackson.databind.JsonNode node, JsonNodeInfo info) 获取节点信息- Parameters:
node- 节点info- 具体信息- Returns:
- node
-
om
public static com.fasterxml.jackson.databind.ObjectMapper om()获取对象- Returns:
- 对象
-
toNode
对象转 JsonNode- Type Parameters:
T- 类型- Parameters:
t- 入参- Returns:
- node节点
-
tryParse
public static <T> T tryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper, T> parse) 解析json- Type Parameters:
T- 返回类型- Parameters:
parse- 执行函数- Returns:
- 返回数据
-
isJson
判断是否为json 只是初级判断,没有严格校验json的内容- Parameters:
json- json字符串- Returns:
- 是否为json
-
tryParse
protected static <T> T tryParse(FunctionException<com.fasterxml.jackson.databind.ObjectMapper, T> parse, com.fasterxml.jackson.databind.ObjectMapper om) 解析json- Type Parameters:
T- 返回类型- Parameters:
parse- 执行函数om- om- Returns:
- 返回数据
-