通过对象生成json格式

这是一个Java工具类,主要用于Java对象与JSON之间的转换。它使用Jackson库,配置了在对象属性与JSON字段不完全匹配时仍能进行转换,并且可以处理空bean转JSON的错误。提供了将对象转换为JSON字符串,JSON字符串转换为指定类型的对象,以及JSON数据转换为对象列表的方法。
摘要由CSDN通过智能技术生成
public class JsonUtils {
    public static void main(String[] args) {
      
    }


    // 定义jackson对象,用于 Java 对象的序列化及反序列化
    private static final ObjectMapper MAPPER = new ObjectMapper();

    static {
        // config
        //设置实体无属性和json串属性对应时不会出错,只转换对应的属性
        MAPPER.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        // 忽略空bean转 JSON 的错误
        MAPPER.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    }

    /**
     * 将对象转换成json字符串。
     * <p>Title: pojoToJson</p>
     * <p>Description: </p>
     *
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            return MAPPER.writeValueAsString(data);
        } catch (JsonMappingException e) {

        } catch (IOException e) {

        }
        return null;
    }

    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param beanType 对象中的object类型,<T> 将此方法声明为泛型方法,可传入任何对象
     * @return <T> 目标对象
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        if (StringUtils.isEmpty(jsonData) || null == beanType) {
            return null;
        }
        try {
            return MAPPER.readValue(jsonData, beanType);
        } catch (Exception e) {

        }
        return null;
    }

    /**
     * 将json数据转换成pojo对象list
     * <p>Title: jsonToList</p>
     * <p>Description: </p>
     *
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
        if (StringUtils.isEmpty(jsonData) || null == beanType) {
            return null;
        }
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            return MAPPER.readValue(jsonData, javaType);
        } catch (Exception e) {

        }
        return null;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值