Skip to main content

JsonUtils-JSON转换/序列化工具类

作用​

本工具类主要提供Json格式的字符串与Java对象之间的转换功能,本类中的方法均为实例方法,需要根据单例模式进行调用。并且本类已经和SpringBoot框架进行了集成,支持多语言和多时区的自动处理。

API列表​

/**
* 获取+8时区的默认的JsonUtils对象
* <p>默认日期格式:"yyyy-MM-dd HH:mm:ss"</p>
* @return 返回默认的JsonUtils对象
*/
public static JsonUtils getInstance() {
// to do sth.
}
/**
* 获取自定义日期格式的JsonUtils对象
*
* @param dateFormat 日期格式(例:yyyy-MM-dd HH:mm:ss)
* @return 返回自定义日期格式的JsonUtils对象
*/
public static JsonUtils getInstance(String dateFormat) {
// to do sth.
}
/**
* 获取可自定义的JsonUtils对象的方法
* <p>当需要自定义序列化/反序列化配置时,可以调用此方法获取一个新的JsonUtils对象</p>
*
* @return 返回一个新的JsonUtils对象
*/
public JsonUtils custom(ObjectMapper mapper) {
// to do sth.
}
/**
* 获取一个原始的ObjectMapper克隆对象的方法
*
* @return 返回一个原始的ObjectMapper克隆对象
*/
public ObjectMapper cloneMapper() {
// to do sth.
}
/**
* 序列化对象为JSON字符串的方法(会过滤掉null值)
*
* @param value 待序列化的对象
* @param prettyPrinter 输出美化后的JSON字符串
* @return 返回JSON字符串(如果对象转换错误将返回null)
*/
@Nullable
public String serialize(Object value, boolean... prettyPrinter) {
// to do sth.
}
/**
* 序列化对象为JSON字符串的方法
*
* @param value 待序列化的对象
* @param prettyPrinter 输出美化后的JSON字符串
* @return 返回JSON字符串(如果对象转换错误将返回null)
*/
@Nullable
public String serializeBySnake(Object value, boolean... prettyPrinter) {
// to do sth.
}
/**
* 将指定对象序列化为字节数组的方法
*
* @param value 需要序列化的对象
* @return 返回字节数组
*/
@Nullable
public byte[] serializeBytes(Object value) {
// to do sth.
}
/**
* 将指定对象序列化为字节数组的方法
*
* @param value 需要序列化的对象
* @return 返回字节数组
*/
@Nullable
public byte[] serializeBytesBySnake(Object value) {
// to do sth.
}
/**
* 反序列化JSON字符串的方法
*
* @param content JSON字符串
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(String content, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON字符串的方法
*
* @param content JSON字符串
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(String content, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON字符串的方法
*
* @param content JSON字符串
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(String content, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化JSON字符串的方法
*
* @param content JSON字符串
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(String content, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化输入流内容为指定类型对象的方法
*
* @param src 输入流对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(InputStream src, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化输入流内容为指定类型对象的方法
*
* @param src 输入流对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(InputStream src, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化输入流内容为指定类型对象的方法
*
* @param src 输入流对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(InputStream src, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化输入流内容为指定类型对象的方法
*
* @param src 输入流对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(InputStream src, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化URL内容为指定类型对象的方法
*
* @param url URL对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(URL url, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化URL内容为指定类型对象的方法
*
* @param url URL对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(URL url, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化URL内容为指定类型对象的方法
*
* @param url URL对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(URL url, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化URL内容为指定类型对象的方法
*
* @param url URL对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(URL url, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化文件内容为目标类型对象的方法
*
* @param file 文件对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(File file, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化文件内容为目标类型对象的方法
*
* @param file 文件对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(File file, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化文件内容为目标类型对象的方法
*
* @param file 文件对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(File file, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化文件内容为目标类型对象的方法
*
* @param file 文件对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(File file, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化字符流内容为目标类型对象的方法
*
* @param reader 字符流对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(Reader reader, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化字符流内容为目标类型对象的方法
*
* @param reader 字符流对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(Reader reader, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化字符流内容为目标类型对象的方法
*
* @param reader 字符流对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(Reader reader, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化字符流内容为目标类型对象的方法
*
* @param reader 字符流对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(Reader reader, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化字符流内容为目标类型对象的方法
*
* @param input 数据输入流对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(DataInput input, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化字符流内容为目标类型对象的方法
*
* @param input 数据输入流对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(DataInput input, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param parser JSON解析器对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(JsonParser parser, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param parser JSON解析器对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(JsonParser parser, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param parser JSON解析器对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(JsonParser parser, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param parser JSON解析器对象
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializeBySnake(JsonParser parser, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化树结构对象为指定类型对象的方法
*
* @param node 树节点对象
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserialize(TreeNode node, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param payload 数据负载
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializePayload(byte[] payload, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param payload 数据负载
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializePayloadBySnake(byte[] payload, Class<T> valueType) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param payload 数据负载
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializePayload(byte[] payload, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 反序列化JSON Payload的方法
*
* @param payload 数据负载
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T deserializePayloadBySnake(byte[] payload, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 转换对象的方法
*
* @param obj 数据负载
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T convertObject(Object obj, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 转换对象的方法
*
* @param obj 数据负载
* @param valueTypeRef 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T convertObjectBySnake(Object obj, TypeReference<T> valueTypeRef) {
// to do sth.
}
/**
* 转换对象的方法
*
* @param obj 数据负载
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T convertObject(Object obj, Class<T> valueType) {
// to do sth.
}
/**
* 转换对象的方法
*
* @param obj 数据负载
* @param valueType 反序列化字符串的类型
* @param <T> JSON字符串对应的实体类型
* @return 返回反序列化后的结果
*/
@Nullable
public <T> T convertObjectBySnake(Object obj, Class<T> valueType) {
// to do sth.
}
/**
* 将Json字符串转换为通用JSON格式对象的方法
*
* @param jsonString 待转换的对象
* @return 返回 JSON 通用格式对象
*/
@Nullable
public JsonNode convertJsonNode(String jsonString) {
// to do sth.
}
/**
* 将Json字符串转换为通用JSON格式对象的方法
*
* @param jsonString 待转换的Json字符串
* @return 返回 JSON 通用格式对象
*/
@Nullable
public JsonNode convertJsonNodeBySnake(String jsonString) {
// to do sth.
}
/**
* 将对象转换为通用只读JSON格式对象的方法(Json字符串请勿使用该方法)
*
* @param obj 待转换的对象
* @return 返回 JSON 通用格式对象
* @see #convertJsonNode(String) Json字符串格式化请使用 {@code convertJsonNode(String)} 方法
*/
@Nullable
public JsonNode toJsonNode(Object obj) {
// to do sth.
}
/**
* 将对象转换为通用可读写的JSON格式对象的方法(Json字符串请勿使用该方法)
*
* @param obj 待转换的对象
* @return 返回 JSON 通用格式对象
* @see #convertJsonNode(String) Json字符串格式化请使用 {@code convertJsonNode(String)} 方法
*/
@Nullable
public ObjectNode toObjectNode(Object obj) {
// to do sth.
}
/**
* 将对象转换为通用JSON格式对象的方法(Json字符串请勿使用该方法)
*
* @param obj 待转换的对象
* @return 返回 JSON 通用格式对象
* @see #convertJsonNodeBySnake(String) Json字符串格式化请使用 {@code convertJsonNodeBySnake(String)} 方法
*/
@Nullable
public JsonNode toJsonNodeBySnake(Object obj) {
// to do sth.
}
/**
* 将通用JSON格式对象转换为Java对象的方法
*
* @param node 待转换的对象
* @param clazz Java对象类型
* @return 返回 JSON 通用格式对象
*/
@Nullable
public <T> T toJavaObject(JsonNode node, Class<T> clazz) {
// to do sth.
}
/**
* 将通用JSON格式对象转换为Java对象的方法
*
* @param node 待转换的对象
* @param javaType 反序列化字符串的类型
* @return 返回 JSON 通用格式对象
*/
@Nullable
public <T> T toObjectNode(JsonNode node, JavaType javaType) {
// to do sth.
}

用法​

静态工具类方法,直接使用即可。

演示​

System.out.println(JsonUtils.getInstance().serialize(Map.of("key1", "value1", "key2", "value2")));