1. 程式人生 > >工具類--JsonUtils

工具類--JsonUtils

package jsonUtils;

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

import java.util.List;


/**
 * @auther 陳鄭遊
 * @create 2016/3/26 0020
 * @功能
 * @問題
 * @說明
 * @URL地址
 * @進度描述
 */
public class JsonUtils {

    // 定義jackson物件
    private static final ObjectMapper MAPPER = new ObjectMapper();


    /**
     * Description:將物件轉換成json字串
     *
     * @param data json資料
     * @return
     */
    public static String objectToJson(Object data) {

        try {
            String string = MAPPER.writeValueAsString(data);
            return string;

        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * Description:將json結果集轉化為物件
     *
     * @param jsonData json資料
     * @param clazz    物件中的object型別
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * Description:將json資料轉換成pojo物件list
     *
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {

        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);

        try {

            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;

        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

}