fastjson- JSON工具類

一、工具類API

API 說明
toJSONString(Object object) 將任意對象轉爲json字符串, 並忽略值爲 null的屬性(默認)
toJSONStringNoNull(Object object) 將任意對象轉爲json字符串, 並忽略值爲null的屬性
toJSONStringIsNull(Object object) 將任意對象轉爲json字符串轉爲json字符串, 並保留值爲null的屬性
parse(String text) 把 JSON字符串轉爲 Object (接收時可強轉任意javaBand)
toJSON(Object javaObject) 將JavaBean(任意對象) 轉換爲 Object, (接收時可強轉任意javaBand)
parseObject(String text) 把JSON字符串 轉爲 JSONObject { }
parseArray(String text) 把JSON字符串 轉爲 JSONArray [ { } , { } , … , { } ]
parseObject(String text, Class clazz) 把JSON字符串轉爲JavaBean
parseEntity(String text, Class clazz) 把JSON 字符串轉爲實體類
parseEntity(Map map, Class t) 將Map 轉換爲 實體類
parseMap(String text) 把JSON字符串轉爲 Map
parseMap(T t) 將實體類 轉換爲 Map
parseList(String text) 把JSON字符串轉爲 List
parseList(String text, Class clazz) 把JSON 字符串轉爲 List List<Entity/Map/List> ==> List<任意對象>

二、工具類方法 JsonUtil

maven 依賴

<!-- fastjson -->
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.62</version>
 </dependency>
package com.rely.base.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * TODO  fastjson-JSON 工具類擴展
 * <p>
 * // TODO  fastjson - 原API 一覽
 * // public static final Object parse(String text);                                // 把JSON文本parse爲JSONObject或者JSONArray
 * // public static final JSONObject parseObject(String text);                     // 把JSON文本parse成JSONObject
 * // public static final <T> T parseObject(String text, Class<T> clazz);           // 把JSON文本parse爲JavaBean
 * // public static final JSONArray parseArray(String text);                        // 把JSON文本parse成JSONArray
 * // public static final <T> List<T> parseArray(String text, Class<T> clazz);      // 把JSON文本parse成JavaBean集合
 * // public static final String toJSONString(Object object);                       // 將JavaBean 序列化爲JSON文本
 * // public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean 序列化爲帶格式的JSON文本
 * // public static final Object toJSON(Object javaObject);                         // 將JavaBean轉換爲JSONObject或者JSONArray。
 *
 * @author ws
 * @mail [email protected]
 * @date 2020/4/24 0024 9:55
 */
@SuppressWarnings("ALL")
public class JsonUtil {

    //===================================================================================================
    //===================================================================================================
    //======================================= 轉 Json字符串 ==============================================
    //===================================================================================================
    //===================================================================================================

    /**
     * TODO 將任意對象轉爲json字符串, 並忽略值爲 null的屬性(默認)
     */
    public static String toJSONString(Object object) {
        return JSON.toJSONString(object);
    }

    /**
     * TODO 將任意對象轉爲json字符串, 並忽略值爲null的屬性
     */
    public static String toJSONStringNoNull(Object object) {
        return JSON.toJSONString(object, SerializerFeature.PrettyFormat);
    }

    /**
     * TODO 將任意對象轉爲json字符串轉爲json字符串, 並保留值爲null的屬性
     */
    public static String toJSONStringIsNull(Object object) {
        return JSON.toJSONString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
    }


    //===================================================================================================
    //===================================================================================================
    //========================================== 轉 Object ==============================================
    //===================================================================================================
    //===================================================================================================

    /**
     * TODO 把 JSON字符串轉爲 Object (接收時可強轉任意javaBand)
     */
    public static Object parse(String text) {
        return JSON.parse(text);
    }

    /**
     * TODO 將JavaBean(任意對象) 轉換爲 Object, (接收時可強轉任意javaBand)
     */
    public static Object toJSON(Object javaObject) {
        return JSON.toJSON(javaObject);
    }

    //===================================================================================================
    //===================================================================================================
    //=========================================  轉 JSONObject ==========================================
    //==================================   JSONObject的數據是用 {  } 來表示的)  == ========================
    //===================================================================================================

    /**
     * TODO 把JSON字符串 轉爲 JSONObject
     */
    public static JSONObject parseObject(String text) {
        return JSON.parseObject(text);
    }

    //===================================================================================================
    //===================================================================================================
    //========================================== 轉 JSONArray ===========================================
    //================== JSONArray,顧名思義是由JSONObject構成的數組,用  [ { } , { } , ......  , { } ]  ====
    //===================================================================================================

    /**
     * TODO 把JSON字符串 轉爲 JSONArray
     */
    public static JSONArray parseArray(String text) {
        return JSON.parseArray(text);
    }


    //===================================================================================================
    //===================================================================================================
    //=========================================== 轉 javaBean ===========================================
    //===================================================================================================
    //===================================================================================================

    /**
     * TODO 把JSON字符串轉爲JavaBean
     */
    public static <T> T parseObject(String text, Class<T> clazz) {
        return JSON.parseObject(text, clazz);
    }


    //===================================================================================================
    //===================================================================================================
    //============================================= 轉實體類 ==============================================
    //===================================================================================================
    //===================================================================================================

    /**
     * TODO 把JSON 字符串轉爲實體類
     */
    public static <T> T parseEntity(String text, Class<T> clazz) {
        return JSON.parseObject(text, clazz);
    }

    /**
     * TODO 將Map 轉換爲 實體類
     */
    public static <T> T parseEntity(Map map, Class<T> t) {
        String jsons = toJSONStringIsNull(map);
        T t1 = JSON.parseObject(jsons, t);
        return t1;
    }


    //===================================================================================================
    //===================================================================================================
    //============================================= 轉Map ==============================================
    //===================================================================================================
    //===================================================================================================

    /**
     * TODO 把JSON字符串轉爲 Map
     */
    public static Map parseMap(String text) {
        return JSON.parseObject(text, Map.class);
    }

    /**
     * TODO 將實體類 轉換爲  Map
     */
    public static <T> Map parseMap(T t) {
        String jsons = toJSONStringIsNull(t);
        Map paramMap = (Map) JSONObject.parseObject(jsons);
        return paramMap;
    }


    //===================================================================================================
    //===================================================================================================
    //============================================= 轉List ==============================================
    //===================================================================================================
    //===================================================================================================

    /**
     * TODO 把JSON字符串轉爲 List
     *
     * @return
     */
    public static List parseList(String text) {
        return JSON.parseObject(text, List.class);
    }

    /**
     * TODO 把JSON 字符串轉爲 List<Entity/Map/List>  ==>  List<任意對象>
     */
    public static <T> List<T> parseList(String text, Class<T> clazz) {
        return JSON.parseArray(text, clazz);
    }


    /**
     * TODO  測試
     *
     * @param args
     * @return void
     * @author ws
     * @mail [email protected]
     * @date 2020/4/24 0024 10:23
     */
    public static void main(String[] args) {
        // TODO 測試是否包含null的值
//        User user = new User();
//        user.setId(1L);
//        user.setUsername("張三");
//        user.setPassword("");
//        user.setMobile(null);
//        System.out.println("toJSONString-不包含null==" + toJSONString(user));
//        System.out.println("toJSONString-包含null==" + toJSONStringIsNull(user));
//        System.out.println("toJSONString-不包含null==" + toJSONStringNoNull(user));

        // TODO 測試Map 與實體類的相互轉換
//        User user = new User();
//        user.setId(1L);
//        user.setUsername("張三");
//        user.setPassword("");
//        user.setMobile(null);
//        Map map = parseMap(user);
//        User user2 = parseEntity(map, User.class);
//        System.out.println();

        // 測試json字符串 轉 List<Entity>
        User user = new User();
        List<User> users = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            user.setId(i);
            user.setUsername("張三");
            user.setPassword("");
            user.setMobile(null);
            users.add(user);
        }
        String jsons = toJSONStringIsNull(users);
        List list = parseList(jsons);
        List<User> users2 = parseList(jsons, User.class);
        System.out.println();

    }


    @Data
    static class User {
        private long id;
        private String username;
        private String password;
        private String mobile;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章