java 基础

阿里巴巴旗下-FastJson工具类

2018-12-11  本文已影响0人  EraJieZhang

FastJson工具类

简介

fastjson是阿里巴巴公司出品的一个java语言编写的高性能且功能完善的JSON函数库,他采用一种“假定有序快速匹配”的算法,把JSON parse的性能提升到极致,号称是目前java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化,协议交互。Web输出、Android客户端等多种应用场景。
序列化:
JSON.toJSONString(getDataToGson())
反序列化:
JSON.parseObject(JSON_STRING).toString()
由于是java语言是互通的,因此,在以前的Android上使用时,Fastjson不可避免的引入了很多对于Android而言冗余的功能,从而增加了包的大小,很多人使用的就是标准版本的fastjson,但事实上,fastjson还存在一个专门为android定制的版本-fastjson-android。和标准版相比,Android版本中去掉了一些Android虚拟机dalvik不支持的功能,使得jar更小。(本人并未试过)

工具类

/**
 * FastJson 工具类(阿里巴巴)
 * @author EraJieZhang
 * @data 2018/12/11
 */
public class FastJsonUtil {
    /***
     * 解析为字符串
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static String fromString(String jsonString, String key) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                return jsonObject.getString(key);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 解析为布尔
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static Boolean formBoolean(String jsonString, String key) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                return jsonObject.getBoolean(key);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    /***
     * 解析为String
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static String formString(String jsonString, String key, String skey) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                JSONObject jsonObject1 = jsonObject.getJSONObject(key);
                String jsonObject2 = jsonObject1.getString(skey);
                return jsonObject2;
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 解析为Int
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static int formInt(String jsonString, String key, String skey) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                JSONObject jsonObject1 = jsonObject.getJSONObject(key);
                int jsonObject2 = jsonObject1.getInteger(skey);
                return jsonObject2;
            } else {
                return -1;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    /***
     * 解析为数字
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static Integer formInteger(String jsonString, String key) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                return jsonObject.getInteger(key);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 解析为长位十进制数
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static BigDecimal formBigDecimal(String jsonString, String key) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                return jsonObject.getBigDecimal(key);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 解析为双精度
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static Double formDouble(String jsonString, String key) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                return jsonObject.getDouble(key);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 解析为浮点数
     *
     * @param jsonString json字符串
     * @param key 关键字
     * @return  返回值
     */
    public static Float formFloat(String jsonString, String key) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                JSONObject jsonObject = JSONObject.parseObject(jsonString);
                return jsonObject.getFloat(key);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 解析为对象
     *
     * @param jsonString json字符串
     * @param key 需要解析的关键字
     * @param t 泛型
     * @param <T> 泛型
     * @return 返回的对象
     */
    public static <T> T fromBean(String jsonString, String key, Class<T> t) {
        if (jsonString != null) {
            try {
                JSONObject jsonObj = JSONObject.parseObject(jsonString);
                return JSONObject.toJavaObject(jsonObj.getJSONObject(key), t);
            } catch (Exception e) {
                return null;
            }
        } else {
            return null;
        }
    }

    /***
     * 解析为列表
     *
     * @param jsonString json字符串
     * @param key 需要解析的关键字
     * @param t 泛型
     * @param <T>   泛型
     * @return 返回的列表
     */
    public static <T> ArrayList<T> fromList(String jsonString, String key, Class<T> t) {
        ArrayList<T> list = new ArrayList<T>();
        if (jsonString != null && jsonString.length() > 0) {
            try {
                JSONObject jsonObj = JSONObject.parseObject(jsonString);
                JSONArray inforArray = jsonObj.getJSONArray(key);
                for (int index = 0; index < inforArray.size(); index++) {
                    list.add(JSONObject.toJavaObject(
                            inforArray.getJSONObject(index), t));
                }
            } catch (Exception e) {
            }
        }
        return list;
    }

    /***
     * 直接解析为bean
     *
     * @param jsonString json字符串
     * @param t 泛型
     * @param <T> 泛型
     * @return 返回的bean
     */
    public static <T> T fromBean(String jsonString, Class<T> t) {
        try {
            if (jsonString != null && jsonString.length() > 0) {
                return JSON.parseObject(jsonString, t);
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 直接解析为list
     *
     * @param jsonString json字符串
     * @param t 泛型
     * @param <T> 泛型
     * @return 返回的泛型数组
     */
    public static <T> ArrayList<T> fromList(String jsonString, Class<T> t) {
        ArrayList<T> list = null;
        try {
            list = new ArrayList<>();
            if (jsonString != null && jsonString.length() > 0) {
                list.addAll(JSON.parseArray(jsonString, t));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }


    /***
     * 将列表转换为json
     *
     * @param listBean 泛型数组
     * @return json字符串
     */
    public static <T> String ArrayToJson(ArrayList<T> listBean) {
        String jsonString = JSON.toJSONString(listBean);
        return jsonString;
    }

    /***
     * 将类转为json
     *
     * @param <T> 泛型
     * @return json字符串
     */
    public static <T> String BeanToJson(Object obj) {
        String jsonsString = JSON.toJSONString(obj);
        return jsonsString;
    }
}

如果对您有用请给个点赞收藏可好?

上一篇下一篇

猜你喜欢

热点阅读