您的位置:首页 > 编程语言 > Java开发

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

2015-07-24 17:55 645 查看
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上和其他接口是很相近的,简单使用没有任何问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java fastjson 源码 json