加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FastJson生成和解析JSON数据

发布时间:2020-12-16 19:39:55 所属栏目:百科 来源:网络整理
导读:生成和解析JSON数据格式的包有很多种:Gson、json-smart、FastJson、jackjson等, FastJson是一个阿里巴巴的大神开发的开源的Json处理工具包,包括“序列化”和“反序列化”两部分,号称最快。但是我认为没有最快,只有更快,只要这个功能满足我的需求,速度

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

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


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

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。

服务器端从数据库中获取到JavaBean(JAVA中的简单java类,比如Person等)或者JavaBean的集合,用 JSON.toJSONString()将其转成JSON数据格式并传给客户端,客户端的解析就是用到上述的parSEObject()方法,第一个参数是对象,第二个参数是JavaBean.class,而集合需要用到parseArray()方法,下面是一个工具类,对这些方法进行了封装,可以直接引用:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读