Java FastJson 源码分析(1) 之 简单应用

Java FastJson 源码分析(一) 之 简单应用

fastjson是一个性能很好的Java语言实现的JSON解析器和生成器,来自阿里的工程师开发。提供了Java对象快速序列化和发序列化的工具。
主要特点:
•快速FAST(比其它任何基于Java的解析器和生成器更快)
•强大(支持普通JDK类包括任意JavaBean Class、Collection、Map、Date或enum)
•零依赖(没有依赖其它任何类库除了JDK)

具体应用方式:
1.首先在官网上下载fastjson.jar文件,下载方式提供了以下三种:
SVN:http://code.alibabatech.com/svn/fastjson/trunk/
WIKI:http://code.alibabatech.com/wiki/display/FastJSON/Home
Issue Tracking:http://code.alibabatech.com/jira/browse/FASTJSON
2.将fastjson.jar引入classpath下,
3.使用示例:

public class JsonUtil {

  private static Logger logger = Logger.getLogger(JsonUtil.class);

  /**
   * @param t
   *          待解析对象
   * @param v
   *          目标对象
   * @return V
   */
  public static <T, V> V parseToObject(T t, Class<V> v) {
    try {
      String json = JSON.toJSONString(t,
          SerializerFeature.WriteDateUseDateFormat);
      return JSON.parseObject(json, v);
    } catch (Exception ex) {
      logger.error(ex.getMessage(), ex);
      return null;
    }
  }

  /**
   * @param t
   *          待解析对象
   * @param v
   *          目标对象
   * @return V
   */
  public static <T, V> V parseObject(T t, Class<V> v) {
    try {
      String json = JSON.toJSONString(t,
          SerializerFeature.WriteDateUseDateFormat);
      return JSON.parseObject(json, v);
    } catch (Exception ex) {
      logger.error(ex.getMessage(), ex);
      return null;
    }
  }

  /**
   * @param t
   *          待转换对象
   * @return 转换后的字符串
   */
  public static <T> String toJsonString(T t) {
    try {
      return JSON.toJSONString(t, SerializerFeature.WriteDateUseDateFormat);
    } catch (Exception ex) {
      logger.error(ex.getMessage(), ex);
      return null;
    }
  }
}

在进行正常的JavaBean和Json之间简单转换的同时,fastjson还提供了SerializerFeature枚举,来实现一系列的针对不同数据类型的格式化标志,如上使用了SerializerFeature.WriteDateUseDateFormate对日期格式进行格式化,否则JavaBean转换至Json数据时可能会以时间戳的方式显示,无法正常应用。
上面示例提供了一种封装fastjson的方式,可以将任何类型的Java对象转换为jsonString,并进行反向转换,fastJson在使用API上和其他接口是很相近的,简单使用没有任何问题。

版权声明:本文为博主原创文章,未经博主允许不得转载。