美文网首页java 基础
阿里巴巴旗下-FastJson工具类

阿里巴巴旗下-FastJson工具类

作者: EraJieZhang | 来源:发表于2018-12-11 13:56 被阅读0次

    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;
        }
    }
    
    

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

    相关文章

      网友评论

        本文标题:阿里巴巴旗下-FastJson工具类

        本文链接:https://www.haomeiwen.com/subject/jawshqtx.html