参照Spring Boot后端框架实现序列化工具类

本文参照Jackson实现序列化工具类,旨在于简化开发

复制代码
JacksonUtil.class
java 复制代码
public class JacksonUtil {
    private JacksonUtil() {

    }

    /**
     * 单例
     */
    private final static ObjectMapper OBJECT_MAPPER;

    static {
        OBJECT_MAPPER = new ObjectMapper();
    }

    private static ObjectMapper getObjectMapper() {
        return OBJECT_MAPPER;
    }

    private static  <T> T tryParse(Callable<T> parser) {
        return tryParse(parser, JacksonException.class);
    }

    private static  <T> T tryParse(Callable<T> parser, Class<? extends Exception> check) {
        try {
            return parser.call();
        } catch (Exception var4) {
            if (check.isAssignableFrom(var4.getClass())) {
                throw new JsonParseException(var4);
            }

            throw new IllegalStateException(var4);
        }
    }

    /**
     * 序列化方法
     */
    public static String writeValueAsString(Object object) {
        return JacksonUtil.tryParse(() -> {
            return JacksonUtil.getObjectMapper().writeValueAsString(object);
        });
    }

    /**
     * 反序列化
     */
    public static <T> T readValue(String content, Class<T> valueType) {
        return JacksonUtil.tryParse(() -> {
            return JacksonUtil.getObjectMapper().readValue(content, valueType);
        });

    }

    /**
     * 反序列化 List
     */
    public static <T> T readListValue(String content, Class<?> paramClasses) {
        JavaType javaType = JacksonUtil.getObjectMapper().getTypeFactory()
                .constructParametricType(List.class, paramClasses);
        return JacksonUtil.tryParse(() -> {
            return JacksonUtil.getObjectMapper().readValue(content, javaType);
        });
    }

}
相关推荐
sheji34163 分钟前
【开题答辩全过程】以 环保监督管理系统为例,包含答辩的问题和答案
java·eclipse
不会玩电脑的Xin.6 分钟前
Web请求乱码解决方案
java·javaweb
Billow_lamb15 分钟前
Spring Boot2.x.x 全局错误处理
java·spring boot·后端
苏三的开发日记15 分钟前
Java后台定时器导致系统奔溃的原因分析
后端
remaindertime17 分钟前
基于Ollama和Spring AI:实现本地大模型对话与 RAG 功能
人工智能·后端·ai编程
Lear17 分钟前
Spring Boot异步任务实战:优化耗时操作,提升系统性能
后端
编程火箭车18 分钟前
【Java SE 基础学习打卡】14 Java 注释
java·编程规范·代码注释·api文档·代码可读性·javadoc·文档注释
雁于飞27 分钟前
分布式基础
java·spring boot·分布式·spring·wpf·cloud native
q***25143 分钟前
java进阶1——JVM
java·开发语言·jvm
望眼欲穿的程序猿43 分钟前
Win系统Vscode+CoNan+Cmake实现调试与构建
c语言·c++·后端