Package com.gitee.apanlh.util.dataformat
Class JacksonProvider
- java.lang.Object
-
- com.gitee.apanlh.util.dataformat.JacksonProvider
-
- All Implemented Interfaces:
JsonProvider
public class JacksonProvider extends Object implements JsonProvider
基于Jackson(2.x)实现
如需自定义ObjectMapper,可重写getMapper()()} 方法- Author:
- Pan
-
-
Constructor Summary
Constructors Constructor Description JacksonProvider()默认构造函数
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected com.fasterxml.jackson.databind.ObjectMappergetMapper()获取ObjectMapper
默认返回全局单例,子类可重写以提供自定义映射器booleanhasJson(String str)验证字符串是否为合法JSON(不限制对象/数组类型)booleanhasJsonArray(String str)验证字符串是否为合法JSON数组(以 [ 开头且结构正确)booleanhasJsonObject(String str)验证字符串是否为合法JSON对象(以 {} 开头且结构正确)<T> List<T>parseArray(String json, Class<T> clazz)将JSON数组字符串转换为指定元素类型的List<T> TparseObject(String json, TypeReference<T> typeRef)将JSON字符串转换为带泛型的复杂类型,用TypeReference避免擦除<T> TparseObject(String json, Class<T> clazz)将JSON字符串转换为指定JavaBeanMap<String,Object>parseToLinkedMap(String json)List<Map<String,Object>>parseToListMap(String json)将JSON数组字符串解析为List<Map<String, Object>>
每个集合中的元素为标准Map,等价于parseObject(json, new TypeReference<List<Map<String, Object>>>(){})
内部所有嵌套容器均为标准Java类型Map<String,Object>parseToMap(String json)SortedMap<String,Object>parseToSortedMap(String json)<T> Tto(Object obj, Class<T> clazz)将指定对象转换为指定目标类型的对象StringtoJson(Object obj)将Java对象序列化为JSON字符串(支持对象、List、Map等)byte[]toJsonBytes(Object obj)将Java对象序列化为UTF-8,JSON字节数组,List输出标准数组格式
-
-
-
Method Detail
-
parseObject
public <T> T parseObject(String json, Class<T> clazz)
Description copied from interface:JsonProvider将JSON字符串转换为指定JavaBean- Specified by:
parseObjectin interfaceJsonProvider- Type Parameters:
T- 数据类型- Parameters:
json- JSON字符串clazz- 目标Java类型- Returns:
- T 解析后的对象实例
-
parseObject
public <T> T parseObject(String json, TypeReference<T> typeRef)
Description copied from interface:JsonProvider将JSON字符串转换为带泛型的复杂类型,用TypeReference避免擦除- Specified by:
parseObjectin interfaceJsonProvider- Type Parameters:
T- 数据类型- Parameters:
json- JSON字符串typeRef- 目标类型引用- Returns:
- T 解析后的对象实例
-
parseArray
public <T> List<T> parseArray(String json, Class<T> clazz)
Description copied from interface:JsonProvider将JSON数组字符串转换为指定元素类型的List- Specified by:
parseArrayin interfaceJsonProvider- Type Parameters:
T- 元素类型- Parameters:
json- JSON数组字符串clazz- 元素Java类型- Returns:
- List 元素列表;若为空数组返回空列表
-
parseToMap
public Map<String,Object> parseToMap(String json)
Description copied from interface:JsonProvider- Specified by:
parseToMapin interfaceJsonProvider- Parameters:
json- JSON对象字符串- Returns:
- Map 解析后的Map
-
parseToLinkedMap
public Map<String,Object> parseToLinkedMap(String json)
Description copied from interface:JsonProvider- Specified by:
parseToLinkedMapin interfaceJsonProvider- Parameters:
json- JSON对象字符串- Returns:
- Map 保持插入顺序的Map
-
parseToSortedMap
public SortedMap<String,Object> parseToSortedMap(String json)
Description copied from interface:JsonProvider- Specified by:
parseToSortedMapin interfaceJsonProvider- Parameters:
json- JSON对象字符串- Returns:
- SortedMap 按键排序的Map
-
parseToListMap
public List<Map<String,Object>> parseToListMap(String json)
Description copied from interface:JsonProvider将JSON数组字符串解析为List<Map<String, Object>>
每个集合中的元素为标准Map,等价于parseObject(json, new TypeReference<List<Map<String, Object>>>(){})
内部所有嵌套容器均为标准Java类型- Specified by:
parseToListMapin interfaceJsonProvider- Parameters:
json- JSON数组字符串- Returns:
- List Map列表;若为空数组返回空列表
-
to
public <T> T to(Object obj, Class<T> clazz)
Description copied from interface:JsonProvider将指定对象转换为指定目标类型的对象- Specified by:
toin interfaceJsonProvider- Type Parameters:
T- 目标类型- Parameters:
obj- 指定要转换的对象clazz- 指定的目标类- Returns:
- T 返回转换对象类型T
-
toJson
public String toJson(Object obj)
Description copied from interface:JsonProvider将Java对象序列化为JSON字符串(支持对象、List、Map等)- Specified by:
toJsonin interfaceJsonProvider- Parameters:
obj- 待序列化对象- Returns:
- String JSON字符串
-
toJsonBytes
public byte[] toJsonBytes(Object obj)
Description copied from interface:JsonProvider将Java对象序列化为UTF-8,JSON字节数组,List输出标准数组格式- Specified by:
toJsonBytesin interfaceJsonProvider- Parameters:
obj- 待序列化对象(通常为List或Bean)- Returns:
- byte[] JSON字节数组
-
hasJson
public boolean hasJson(String str)
Description copied from interface:JsonProvider验证字符串是否为合法JSON(不限制对象/数组类型)- Specified by:
hasJsonin interfaceJsonProvider- Parameters:
str- 待验证字符串- Returns:
- boolean
true 表示合法JSON
-
hasJsonArray
public boolean hasJsonArray(String str)
Description copied from interface:JsonProvider验证字符串是否为合法JSON数组(以 [ 开头且结构正确)- Specified by:
hasJsonArrayin interfaceJsonProvider- Parameters:
str- 待验证字符串- Returns:
- boolean
true 表示合法JSON数组
-
hasJsonObject
public boolean hasJsonObject(String str)
Description copied from interface:JsonProvider验证字符串是否为合法JSON对象(以 {} 开头且结构正确)- Specified by:
hasJsonObjectin interfaceJsonProvider- Parameters:
str- 待验证字符串- Returns:
- boolean
true 表示合法JSON对象
-
getMapper
protected com.fasterxml.jackson.databind.ObjectMapper getMapper()
获取ObjectMapper
默认返回全局单例,子类可重写以提供自定义映射器- Returns:
- ObjectMapper
-
-