...
 
Commits (3)
    https://gitcode.net/mica/mica/-/commit/4e41937d7412bca53a685dbac67c6a2c82639df2 :sparkles: JsonUtil 新增支持 java.io.Reader 转换操作 2021-12-11T09:45:52+08:00 caiqy cqyisbug@163.com https://gitcode.net/mica/mica/-/commit/d31db724e7617b938885d3955b4e2f060f55bd75 !17 JsonUtil 新增支持 java.io.Reader 读取和操作 2021-12-11T01:52:01+00:00 如梦技术 596392912@qq.com Merge pull request !17 from caiqyxyx/master https://gitcode.net/mica/mica/-/commit/d18d5d88fcfa2d62d4f7c44a3f39802197b44286 :sparkles: JsonUtil 优化减少一个字节码指令。 2021-12-11T10:23:25+08:00 如梦技术 596392912@qq.com
......@@ -33,6 +33,7 @@ import org.springframework.lang.Nullable;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.util.*;
......@@ -87,24 +88,36 @@ public class JsonUtil {
* @return jsonString json字符串
*/
public static JsonNode readTree(String jsonString) {
Objects.requireNonNull(jsonString, "jsonString is null");
try {
return getInstance().readTree(jsonString);
return getInstance().readTree(Objects.requireNonNull(jsonString, "jsonString is null"));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 将json字符串转成 JsonNode
* 将InputStream转成 JsonNode
*
* @param in InputStream
* @return jsonString json字符串
*/
public static JsonNode readTree(InputStream in) {
Objects.requireNonNull(in, "InputStream in is null");
try {
return getInstance().readTree(in);
return getInstance().readTree(Objects.requireNonNull(in, "InputStream in is null"));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 将java.io.Reader转成 JsonNode
*
* @param reader java.io.Reader
* @return jsonString json字符串
*/
public static JsonNode readTree(Reader reader) {
try {
return getInstance().readTree(Objects.requireNonNull(reader, "Reader in is null"));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
......@@ -117,9 +130,8 @@ public class JsonUtil {
* @return jsonString json字符串
*/
public static JsonNode readTree(byte[] content) {
Objects.requireNonNull(content, "byte[] content is null");
try {
return getInstance().readTree(content);
return getInstance().readTree(Objects.requireNonNull(content, "byte[] content is null"));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
......@@ -132,9 +144,8 @@ public class JsonUtil {
* @return jsonString json字符串
*/
public static JsonNode readTree(JsonParser jsonParser) {
Objects.requireNonNull(jsonParser, "jsonParser is null");
try {
return getInstance().readTree(jsonParser);
return getInstance().readTree(Objects.requireNonNull(jsonParser, "jsonParser is null"));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
......@@ -200,6 +211,27 @@ public class JsonUtil {
}
}
/**
* 将java.io.Reader反序列化成对象
*
* @param reader java.io.Reader
* @param valueType class
* @param <T> T 泛型标记
* @return Bean
*/
@Nullable
public static <T> T readValue(@Nullable Reader reader, Class<T> valueType) {
if (reader == null) {
return null;
}
try {
return getInstance().readValue(reader, valueType);
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 将json反序列化成对象
*
......@@ -260,6 +292,26 @@ public class JsonUtil {
}
}
/**
* 将java.io.Reader反序列化成对象
*
* @param reader java.io.Reader
* @param typeReference 泛型类型
* @param <T> T 泛型标记
* @return Bean
*/
@Nullable
public static <T> T readValue(@Nullable Reader reader, TypeReference<T> typeReference) {
if (reader == null) {
return null;
}
try {
return getInstance().readValue(reader, typeReference);
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 将json反序列化成对象
*
......@@ -320,6 +372,26 @@ public class JsonUtil {
}
}
/**
* 将java.io.Reader反序列化成对象
*
* @param reader java.io.Reader
* @param javaType JavaType
* @param <T> T 泛型标记
* @return Bean
*/
@Nullable
public static <T> T readValue(@Nullable Reader reader, JavaType javaType) {
if (reader == null) {
return null;
}
try {
return getInstance().readValue(reader, javaType);
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 封装 map type,keyClass String
*
......@@ -404,6 +476,25 @@ public class JsonUtil {
}
}
/**
* 读取集合
*
* @param reader java.io.Reader
* @param elementClass elementClass
* @param <T> 泛型
* @return 集合
*/
public static <T> List<T> readList(@Nullable Reader reader, Class<T> elementClass) {
if (reader == null) {
return Collections.emptyList();
}
try {
return getInstance().readValue(reader, getListType(elementClass));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 读取集合
*
......@@ -443,6 +534,16 @@ public class JsonUtil {
return readMap(content, Object.class);
}
/**
* 读取集合
*
* @param reader java.io.Reader
* @return 集合
*/
public static Map<String, Object> readMap(@Nullable Reader reader) {
return readMap(reader, Object.class);
}
/**
* 读取集合
*
......@@ -477,6 +578,18 @@ public class JsonUtil {
return readMap(content, String.class, valueClass);
}
/**
* 读取集合
*
* @param reader java.io.Reader
* @param valueClass 值类型
* @param <V> 泛型
* @return 集合
*/
public static <V> Map<String, V> readMap(@Nullable Reader reader, Class<?> valueClass) {
return readMap(reader, String.class, valueClass);
}
/**
* 读取集合
*
......@@ -531,6 +644,27 @@ public class JsonUtil {
}
}
/**
* 读取集合
*
* @param reader java.io.Reader
* @param keyClass key类型
* @param valueClass 值类型
* @param <K> 泛型
* @param <V> 泛型
* @return 集合
*/
public static <K, V> Map<K, V> readMap(@Nullable Reader reader, Class<?> keyClass, Class<?> valueClass) {
if (reader == null) {
return Collections.emptyMap();
}
try {
return getInstance().readValue(reader, getMapType(keyClass, valueClass));
} catch (IOException e) {
throw Exceptions.unchecked(e);
}
}
/**
* 读取集合
*
......@@ -668,6 +802,16 @@ public class JsonUtil {
return isValidJson(mapper -> mapper.readTree(input));
}
/**
* 检验 json 格式
*
* @param reader java.io.Reader
* @return 是否成功
*/
public static boolean isValidJson(Reader reader) {
return isValidJson(mapper -> mapper.readTree(reader));
}
/**
* 检验 json 格式
*
......