Класс инструмента fastjson2

Зачем нам нужны самоинкапсулированные классы инструментов? Если взять в качестве примера fastjson в этой статье, то в повседневной разработке при использовании fastjson это записывается прямо следующим образом:

// ****** 常见的用法 ******

// 把对象转成json字符串
JSON.toJSONString(response);

// 把json字符串转成对象
Response response = JSON.parseObject(str, Response.class);

Проблем с этим нет, но при дальнейшем преобразовании и обновлении системы я решил обновить fastjson до fastjson2. Все классы, использующие fastjson, и места импорта пакета должны быть изменены. Хотя его можно заменить глобально, там много файлов, которые нужно изменить. , вам все равно нужно будет проверить их после внесения изменений. Но если есть единый класс инструмента, то нужно менять только класс инструмента.Другие места где используется этот класс инструмента менять не нужно.Это очень удобно и безошибочно.

Есть и другие примеры, такие как журнал. В Springboot используется журнал по умолчанию, а в некоторых местах или других проектах используется log4j. Чтобы унифицировать его позже, его необходимо изменить на один из них. Если есть класс инструмента журнала , затем переключитесь на другой.Для журнала просто измените класс инструмента, иначе придется менять файлы по одному.

Ниже приведен простой класс инструмента fastjson, который можно скопировать и использовать напрямую: 

package com.xxxx.xxxx;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;

import java.util.List;

public class JsonUtil {

    /**
     * 将对象转换为JSON字符串
     * @param obj 要转换为JSON的对象
     * @return JSON字符串
     */
    public static String toJSONString(Object obj) {
        return JSON.toJSONString(obj);
    }

    /**
     * 将对象转换为byte[]
     * @param obj 要转换为JSON的对象
     * @return byte[]
     */
    public static byte[] toJSONBytes(Object obj) {
        return JSON.toJSONBytes(obj);
    }

    /**
     * 将JSON字符串转换为指定类型的对象
     * @param jsonString JSON字符串
     * @param clazz 目标对象类型的Class
     * @param <T> 目标对象的类型
     * @return 转换后的目标对象
     */
    public static <T> T parseObject(String jsonString, Class<T> clazz) {
        return JSON.parseObject(jsonString, clazz);
    }

    /**
     * 将JSON字符串转换为指定类型的list
     * @param jsonString JSON字符串
     * @param clazz 目标对象类型的Class
     * @param <T> 目标对象的类型
     * @return 转换后的目标对象
     */
    public static <T> List<T> parseArray(String jsonString, Class<T> clazz) {
        return JSON.parseArray(jsonString, clazz);
    }

    /**
     * 将JSON字符串转换为JSONObject对象
     * @param jsonString JSON字符串
     * @return 转换后的JSONObject对象
     */
    public static JSONObject parseJSONObject(String jsonString) {
        return JSON.parseObject(jsonString);
    }

    /**
     * 将JSON字符串转换为JSONArray对象
     * @param jsonString JSON字符串
     * @return 转换后的JSONArray对象
     */
    public static JSONArray parseJSONArray(String jsonString) {
        return JSON.parseArray(jsonString);
    }

    /**
     * 将Java对象转换为JSONObject对象
     * @param obj Java对象
     * @return 转换后的JSONObject对象
     */
    public static JSONObject toJSONObject(Object obj) {
        return (JSONObject) JSON.toJSON(obj);
    }

    /**
     * 将Java对象转换为JSONArray对象
     * @param obj Java对象
     * @return 转换后的JSONArray对象
     */
    public static JSONArray toJSONArray(Object obj) {
        return (JSONArray) JSON.toJSON(obj);
    }

}

рекомендация

отblog.csdn.net/wangkaichenjuan/article/details/132554710