首页 > 学院 > 开发设计 > 正文

FastJson生成和解析JSON数据

2019-11-10 20:09:38
字体:
来源:转载
供稿:网友

 生成和解析JSON数据格式的包有很多种:Gson、json-smart、FastJson、jackjson等,FastJson是一个阿里巴巴的大神开发的开源的Json处理工具包,包括“序列化”和“反序列化”两部分,号称最快。但是我认为没有最快,只有更快,只要这个功能满足我的需求,速度不错就行了,这就是我选择工具的基本标准(不是特别追求性能...)。

    FastJson功能强大,完全支持java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)。

下面简单说一下FastJson在OOP中的基本使用(非常简单),以下静态方法都是常用的序列化操作,可以用JSON类名直接调用:

[java] view plain copy PRint?在CODE上查看代码片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 parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean   public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray   public static final  List parseArray(String text, Class 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。   %20 %20 服务器端从数据库中获取到JavaBean(JAVA中的简单java类,比如Person等)或者JavaBean的集合,用%20JSON.toJSONString()将其转成JSON数据格式并传给客户端,客户端的解析就是用到上述的parseObject()方法,第一个参数是对象,第二个参数是JavaBean.class,而集合需要用到parseArray()方法,下面是一个工具类,对这些方法进行了封装,可以直接引用:

[java] view%20plain copy print?派生到我的代码片import java.util.ArrayList;  import java.util.List;  import java.util.Map;    import com.alibaba.fastjson.JSON;  import com.alibaba.fastjson.TypeReference;    public class FastJsonTools {      /**    * 用fastjson 将json字符串解析为一个 JavaBean    *     * @param jsonString    * @param cls    * @return    */    public static <T> T getBean(String jsonString, Class<T> cls) {      T t = null;      try {        t = JSON.parseObject(jsonString, cls);      } catch (Exception e) {        // TODO: handle exception        e.printStackTrace();      }      return t;    }      /**    * 用fastjson 将json字符串 解析成为一个 List<JavaBean> 及 List<String>    *     * @param jsonString    * @param cls    * @return    */    public static <T> List<T> getBeans(String jsonString, Class<T> cls) {      List<T> list = new ArrayList<T>();      try {        list = JSON.parseArray(jsonString, cls);      } catch (Exception e) {        // TODO: handle exception      }      return list;    }      /**    * 用fastjson 将jsonString 解析成 List<Map<String,Object>>    *     * @param jsonString    * @return    */    public static List<Map<String, Object>> getListMap(String jsonString) {      List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();      try {        // 两种写法        // list = JSON.parseObject(jsonString, new        // TypeReference<List<Map<String, Object>>>(){}.getType());          list = JSON.parseObject(jsonString,            new TypeReference<List<Map<String, Object>>>() {            });      } catch (Exception e) {        // TODO: handle exception      }      return list;      }    }  

jar包下载地址:http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.alibaba%22%20AND%20a%3A%22fastjson%22


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表