object类型转为对应对象或对象集合

maven依赖

<!--JSON处理器-->
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-modules-java8</artifactId>
                <version>${jackson.modules}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

工具类

package com.cuslink.common.util;

import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;

@Slf4j
public class TypeReferenceUtils {

    // Mapper instances are fully thread-safe provided
    // that ALL configuration of the instance occurs
    // before ANY read or write calls
    private static final ObjectMapper mapper = new ObjectMapper();

    public static ObjectMapper getInstance() {
        return mapper;
    }

    private TypeReferenceUtils() {}

    public static <T> T jsonToObject(Object object, Class<T> clazz) {
        T t = mapper.convertValue(object, clazz);
        return t;
    }

    public static <T> List<T> jsonArrayToObjectList(Object object, Class<T> clazz) {
        JavaType javaType = getCollectionType(ArrayList.class, clazz);
        List<T> t = mapper.convertValue(object, javaType);
        return t;
    }

    public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
        return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
    }

}

实现例子

 try {
            subArticleDto = TypeReferenceUtils.jsonToObject(value, TblSubArticleDto.class);
        } catch (Exception e) {
            if (log.isInfoEnabled()) {
                log.info("文章 {} 段落 {} 子文章参数转换错误", articleId, sectionDto.getId(), e);
            }
            return null;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值