import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

import java.util.List;

/**
 * Json解析类
 */
public class JsonUtils {

    /**
     * 解析对象
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T parseObject(String json, Class<T> clazz) {
        try {
            return JSON.parseObject(json, clazz);
        } catch (Exception e) {
            Log.e("JsonUtils",e);
            return null;
        } 
    }

    /**
     * 解析数组
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> parseArray(String json, Class<T> clazz) {
        try {
            return JSON.parseArray(json, clazz);
        } catch (Exception e) {
            Log.e("JsonUtils",e);
            return null;
        }
    }

    /**
     * 解析数组
     * @param data
     * @return
     */
    public static String toJson(Object data) {
        try {
            return JSONArray.toJSONString(data);
        } catch (Exception e) {
            Log.e("JsonUtils",e);
            return null;
        }
    }
}

fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

封装的好处在于:

  • 当后面要更换json解析库时,只要修改这个类即可,其他代码无需做任何改变。

  • 引用第三方库时,一定要规避由于第三方库的不稳定而引起应用的不稳定,封装之后可以做统一的处理。

标签: none

添加新评论