package com.zcloud.common.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class SerializationUtils {
    /**
     * 序列化工具类
     */
    private static final ObjectMapper objectMapper = new ObjectMapper();

    /**
     * 将对象序列化为JSON字符串
     *
     * @param obj 要序列化的对象
     * @return 序列化后的JSON字符串
     * @throws JsonProcessingException JSON处理异常
     */
    public static String serialize(Object obj) throws JsonProcessingException {
        return objectMapper.writeValueAsString(obj);
    }

    /**
     * 将JSON字符串反序列化为指定类型的对象
     *
     * @param json  要反序列化的JSON字符串
     * @param clazz 对象的类型
     * @return 反序列化后的对象
     * @throws JsonProcessingException JSON处理异常
     */
    public static <T> T deserialize(String json, Class<T> clazz) throws JsonProcessingException {
        return objectMapper.readValue(json, clazz);
    }
}
