123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package com.ruoyi.common.utils;
- import cn.hutool.core.lang.Validator;
- 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;
- import java.util.Map;
- /**
- * 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) {
- if (Validator.isEmpty(object)) {
- return null;
- }
- 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) {
- if (StrUtil.isBlank(text)) {
- return null;
- }
- try {
- return objectMapper.readValue(text, typeReference);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- public static <T> Map<String, T> parseMap(String text) {
- if (StrUtil.isBlank(text)) {
- return null;
- }
- try {
- return objectMapper.readValue(text, new TypeReference<Map<String, T>>() {});
- } 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);
- }
- }
- }
|