jackson进行json序列化和反序列化

本文介绍了一个基于Jackson库的工具类实现,该工具类提供了一系列用于JSON序列化和反序列化的便捷方法。通过实例展示了如何将Java对象转换为JSON字符串及如何从JSON字符串中读取Java对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.csair.soc.aircrew.rostereditor.util;


import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;


public abstract class JacksonUtil {
    public static final ObjectMapper OM = new ObjectMapper();
    static{
    OM.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    }
    public static <T> T getData(byte[] o) {
        T data = null;
        try {
            data = OM.readValue((byte[]) o, new TypeReference<T>(){});
        } catch (Exception e) {
            e.printStackTrace();
        }
        return data;
    }
    
    public static <T> T getData(byte[] o,TypeReference<T> typeReference) {
    T data = null;
        try {
            data = OM.readValue((byte[]) o, typeReference);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return data;
    }
    public static byte[] toBytes(Object mb) {
        byte[] bytes = null;
        try {
            bytes = OM.writeValueAsBytes(mb);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return bytes;
    }
    public static String toString(Object mb) {
        String bytes = null;
        try {
            bytes = OM.writeValueAsString(mb);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return bytes;
    }
    public static <T> T getData(String jsonStr,TypeReference<T> typeReference) {
        T data = null;
        try {
            data = OM.readValue(jsonStr, typeReference);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return data;
    }

}


jackson的pom依赖配置如下

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.4</version>
</dependency>


user是个实体,进行json序列化

String str = JacksonUtil.toString(user);
System.out.println(str);

从json字符串反序列化获取实体

user = JacksonUtil.getData(str, new TypeReference<User>() {
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值