package com.jiayue.ipfcst.client.utils;

import cn.hutool.json.JSON;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;

import java.util.List;

/**
 * Json和bean相互转换
 */
public class JsonBeanUtil {

    /**
     * json转bean
     *
     * @param json json字符串
     * @param t    泛型
     * @param <T>  泛型Class对象
     * @return 泛型集合
     */
    public static <T> List<T> jsonToBeans(String json, Class<T> t) {
        JSONArray array = JSONUtil.parseArray(json);
        List<T> list = array.toList(t);
        return list;
    }

    /**
     * bean转json
     *
     * @param list bean集合
     * @param <T>
     * @return 返回string对象
     */
    public static <T> String beanToJsons(List<T> list) {
        JSONArray jsonArray = JSONUtil.parseArray(list);
        return jsonArray.toString();
    }



    /**
     * bean转json
     *
     * @param <T>
     * @return 返回string对象
     */
    public static <T> String beanToJson(T t) {
        JSON json = JSONUtil.parse(t);
        return json.toString();
    }


    /**
     * json转bean
     *
     * @param json json字符串
     * @param t    泛型
     * @param <T>  泛型Class对象
     * @return 泛型集合
     */
    public static <T> T jsonToBean(String json, Class<T> t) {
        JSON js = JSONUtil.parse(json);
        T bean = js.toBean(t);
        return bean;
    }
}
