FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能。
实际上其他的json处理工具都和它差不多,api也有几分相似。
一、JSON规范
JSON是一个标准规范,用于数据交互,规范的中文文档如下:
参看规范,来对比JSON类库处理结果。
二、fastjson的一些简要说明
1、了解fastjson
Fastjson介绍
Fastjson是一个Java语言编写的JSON处理器。
1、遵循 http://json.org标准,为其官方网站收录的参考实现之一。
2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。 http://code.alibabatech.com/wiki/display/FastJSON/Home
1、遵循 http://json.org标准,为其官方网站收录的参考实现之一。
2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。 http://code.alibabatech.com/wiki/display/FastJSON/Home
如果获得Fastjson?
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
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 API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public
static
finalObject parse(String text);
// 把JSON文本parse为JSONObject或者JSONArray
finalJSONObject parSEObject(String text); // 把JSON文本parse成JSONObject
final<T> T parSEObject(String text,Class<T> clazz); // 把JSON文本parse为JavaBean
finalJSONArray parseArray(String text); // 把JSON文本parse成JSONArray
final<T> List<T> parseArray(String text,0)">//把JSON文本parse成JavaBean集合
finalString toJSONString(Object object); // 将JavaBean序列化为JSON文本
finalString toJSONString(Object object,booleanprettyFormat); // 将JavaBean序列化为带格式的JSON文本
finalObject toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
finalJSONObject parSEObject(String text); // 把JSON文本parse成JSONObject
final<T> T parSEObject(String text,Class<T> clazz); // 把JSON文本parse为JavaBean
finalJSONArray parseArray(String text); // 把JSON文本parse成JSONArray
final<T> List<T> parseArray(String text,0)">//把JSON文本parse成JavaBean集合
finalString toJSONString(Object object); // 将JavaBean序列化为JSON文本
finalString toJSONString(Object object,booleanprettyFormat); // 将JavaBean序列化为带格式的JSON文本
finalObject toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
3、有关类库的一些说明
SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String,Object>
JSON反序列化没有真正数组,本质类型都是List<Object>
三、测试代码
packagelavasoft.stu.json;
importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.serializer.SerializeConfig;
importcom.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
importjava.util.*;
/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 11-11-22 上午9:15
*/
classFoo {
privateString vString = "vStringhehhehe";
private charvchar = 'x';
bytevbyte = 64;
shortvshort = 128;
intvint = 65535;
longvlong = 9999999L;
floatvfloat = 12.1f;
doublevdouble = 22.203d;
booleanvboolean = false;
//private Date vdate = new Date();
privateDate dddd = newDate();
privateDate vDate = privateDate v_Date = privateObject vnull = null;
privateString[] avString = { "aaa","bbb",0)">"ccc"};
int[] avint = {1,2,3,4};
boolean[] avboolean = { true,255)">false,255)">true};
privateList<String> listString = newArrayList<String>();
privateMap<String,String> map = newHashMap<String,String>();
privateBar bar = newBar();
privateBar[] avBar = { newBar(),255)">newBar()};
privateList<Bar> listBar = newArrayList<Bar>();
{
listString.add( "listString1");
listString.add( "listString2");
listString.add( "listString3");
map.put( "x",0)">"s11111x");
map.put( "y",0)">"s22222y");
map.put( "z",0)">"s33333z");
listBar.add( newBar());
listBar.add( newBar());
}
publicString getvString() {
returnvString;
}
voidsetvString(String vString) {
this.vString = vString;
}
chargetVchar() {
returnvchar;
}
voidsetVchar( charvchar) {
this.vchar = vchar;
}
bytegetVbyte() {
returnvbyte;
}
voidsetVbyte( bytevbyte) {
this.vbyte = vbyte;
}
shortgetVshort() {
returnvshort;
}
voidsetVshort( shortvshort) {
this.vshort = vshort;
}
intgetVint() {
returnvint;
}
voidsetVint( intvint) {
this.vint = vint;
}
longgetVlong() {
returnvlong;
}
voidsetVlong( longvlong) {
this.vlong = vlong;
}
floatgetVfloat() {
returnvfloat;
}
voidsetVfloat( floatvfloat) {
this.vfloat = vfloat;
}
doublegetVdouble() {
returnvdouble;
}
voidsetVdouble( doublevdouble) {
this.vdouble = vdouble;
}
booleanisVboolean() {
returnvboolean;
}
voidsetVboolean( booleanvboolean) {
this.vboolean = vboolean;
}
publicDate getDddd() {
returndddd;
}
voidsetDddd(Date dddd) {
this.dddd = dddd;
}
publicDate getV_Date() {
returnv_Date;
}
voidsetV_Date(Date v_Date) {
this.v_Date = v_Date;
}
publicDate getvDate() {
returnvDate;
}
voidsetvDate(Date vDate) {
this.vDate = vDate;
}
publicObject getVnull() {
returnvnull;
}
voidsetVnull(Object vnull) {
this.vnull = vnull;
}
publicString[] getAvString() {
returnavString;
}
voidsetAvString(String[] avString) {
this.avString = avString;
}
int[] getAvint() {
returnavint;
}
voidsetAvint( int[] avint) {
this.avint = avint;
}
boolean[] getAvboolean() {
returnavboolean;
}
voidsetAvboolean( boolean[] avboolean) {
this.avboolean = avboolean;
}
publicList<String> getListString() {
returnlistString;
}
voidsetListString(List<String> listString) {
this.listString = listString;
}
publicMap<String,String> getMap() {
returnmap;
}
voidsetMap(Map<String,String> map) {
this.map = map;
}
publicBar getBar() {
returnbar;
}
voidsetBar(Bar bar) {
this.bar = bar;
}
publicBar[] getAvBar() {
returnavBar;
}
voidsetAvBar(Bar[] avBar) {
this.avBar = avBar;
}
publicList<Bar> getListBar() {
returnlistBar;
}
voidsetListBar(List<Bar> listBar) {
this.listBar = listBar;
}
}
importcom.alibaba.fastjson.JSON;
importcom.alibaba.fastjson.serializer.SerializeConfig;
importcom.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
importjava.util.*;
/**
* Created by IntelliJ IDEA.
*
* @author leizhimin 11-11-22 上午9:15
*/
classFoo {
privateString vString = "vStringhehhehe";
private charvchar = 'x';
bytevbyte = 64;
shortvshort = 128;
intvint = 65535;
longvlong = 9999999L;
floatvfloat = 12.1f;
doublevdouble = 22.203d;
booleanvboolean = false;
//private Date vdate = new Date();
privateDate dddd = newDate();
privateDate vDate = privateDate v_Date = privateObject vnull = null;
privateString[] avString = { "aaa","bbb",0)">"ccc"};
int[] avint = {1,2,3,4};
boolean[] avboolean = { true,255)">false,255)">true};
privateList<String> listString = newArrayList<String>();
privateMap<String,String> map = newHashMap<String,String>();
privateBar bar = newBar();
privateBar[] avBar = { newBar(),255)">newBar()};
privateList<Bar> listBar = newArrayList<Bar>();
{
listString.add( "listString1");
listString.add( "listString2");
listString.add( "listString3");
map.put( "x",0)">"s11111x");
map.put( "y",0)">"s22222y");
map.put( "z",0)">"s33333z");
listBar.add( newBar());
listBar.add( newBar());
}
publicString getvString() {
returnvString;
}
voidsetvString(String vString) {
this.vString = vString;
}
chargetVchar() {
returnvchar;
}
voidsetVchar( charvchar) {
this.vchar = vchar;
}
bytegetVbyte() {
returnvbyte;
}
voidsetVbyte( bytevbyte) {
this.vbyte = vbyte;
}
shortgetVshort() {
returnvshort;
}
voidsetVshort( shortvshort) {
this.vshort = vshort;
}
intgetVint() {
returnvint;
}
voidsetVint( intvint) {
this.vint = vint;
}
longgetVlong() {
returnvlong;
}
voidsetVlong( longvlong) {
this.vlong = vlong;
}
floatgetVfloat() {
returnvfloat;
}
voidsetVfloat( floatvfloat) {
this.vfloat = vfloat;
}
doublegetVdouble() {
returnvdouble;
}
voidsetVdouble( doublevdouble) {
this.vdouble = vdouble;
}
booleanisVboolean() {
returnvboolean;
}
voidsetVboolean( booleanvboolean) {
this.vboolean = vboolean;
}
publicDate getDddd() {
returndddd;
}
voidsetDddd(Date dddd) {
this.dddd = dddd;
}
publicDate getV_Date() {
returnv_Date;
}
voidsetV_Date(Date v_Date) {
this.v_Date = v_Date;
}
publicDate getvDate() {
returnvDate;
}
voidsetvDate(Date vDate) {
this.vDate = vDate;
}
publicObject getVnull() {
returnvnull;
}
voidsetVnull(Object vnull) {
this.vnull = vnull;
}
publicString[] getAvString() {
returnavString;
}
voidsetAvString(String[] avString) {
this.avString = avString;
}
int[] getAvint() {
returnavint;
}
voidsetAvint( int[] avint) {
this.avint = avint;
}
boolean[] getAvboolean() {
returnavboolean;
}
voidsetAvboolean( boolean[] avboolean) {
this.avboolean = avboolean;
}
publicList<String> getListString() {
returnlistString;
}
voidsetListString(List<String> listString) {
this.listString = listString;
}
publicMap<String,String> getMap() {
returnmap;
}
voidsetMap(Map<String,String> map) {
this.map = map;
}
publicBar getBar() {
returnbar;
}
voidsetBar(Bar bar) {
this.bar = bar;
}
publicBar[] getAvBar() {
returnavBar;
}
voidsetAvBar(Bar[] avBar) {
this.avBar = avBar;
}
publicList<Bar> getListBar() {
returnlistBar;
}
voidsetListBar(List<Bar> listBar) {
this.listBar = listBar;
}
}