12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package cn.iocoder.dashboard.util.json;
- import cn.hutool.core.util.ArrayUtil;
- import cn.hutool.core.util.StrUtil;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.fasterxml.jackson.core.type.TypeReference;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * JSON 工具类
- *
- * @author 芋道源码
- */
- public class JsonUtils {
- private static ObjectMapper objectMapper = new ObjectMapper();
- /**
- * 初始化 objectMapper 属性
- * <p>
- * 通过这样的方式,使用 Spring 创建的 ObjectMapper Bean
- *
- * @param objectMapper ObjectMapper 对象
- */
- public static void init(ObjectMapper objectMapper) {
- JsonUtils.objectMapper = objectMapper;
- }
- public static String toJsonString(Object object) {
- try {
- return objectMapper.writeValueAsString(object);
- } catch (JsonProcessingException e) {
- throw new RuntimeException(e);
- }
- }
- public static <T> T parseObject(String text, Class<T> clazz) {
- if (StrUtil.isEmpty(text)) {
- return null;
- }
- try {
- return objectMapper.readValue(text, clazz);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- public static <T> T parseObject(byte[] bytes, Class<T> clazz) {
- if (ArrayUtil.isEmpty(bytes)) {
- return null;
- }
- try {
- return objectMapper.readValue(bytes, clazz);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- public static <T> T parseObject(String text, TypeReference<T> typeReference) {
- try {
- return objectMapper.readValue(text, typeReference);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- public static <T> List<T> parseArray(String text, Class<T> clazz) {
- if (StrUtil.isEmpty(text)) {
- return new ArrayList<>();
- }
- try {
- return objectMapper.readValue(text, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }
|