阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
源码地址:https://github.com/alibaba/fastjson
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在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。
*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。
以上加*的是一些项目中的常用方法。
以下是自己练习写的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
package
com.test;
public
class
TestPerson {
private
int
age;
private
String name;
public
TestPerson(){
}
public
TestPerson(
int
age,String name){
this
.age=age;
this
.name=name;
}
public
int
getAge() {
return
age;
}
public
void
setAge(
int
age) {
this
.age = age;
}
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
}
package
com.test;
import
java.util.*;
import
com.alibaba.fastjson.*;
public
final
class
TestFastJson {
public
static
void
main(String[] args) {
// TODO Auto-generated method stub
TestPerson json =
new
TestPerson(
19
,
"李明"
);
List<TestPerson> list =
new
ArrayList<TestPerson>();
list.add(json);
list.add(
new
TestPerson(
12
,
"张三"
));
//将集合或者对象序例化成JSON
System.out.println(JSON.toJSON(json));
System.out.println( JSON.toJSON(list) );
//Json串反序列化成对象
TestPerson person = JSON.parseObject(
"{\"name\":\"李明\",\"age\":19}"
, TestPerson.
class
);
System.out.printf(
"name:%s,age:%d\n"
,person.getName(),person.getAge());
String str =
"[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"
;
//数组对象反序列化成集合
List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.
class
);
for
(TestPerson item : listPerson){
System.out.println( item.getName() );
System.out.println( item.getAge());
}
//没有对象直接解析JSON对象
JSONObject jobj = JSON.parseObject(
"{\"name\":\"李明\",\"age\":19}"
);
System.out.printf(
"name:%s,age:%d\n"
,jobj.getString(
"name"
),jobj.getBigInteger(
"age"
));
//没有对象直接解析JSON数组
JSONArray jarr = JSON.parseArray(
"[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"
);
for
(
int
i=
0
,len=jarr.size();i<len;i++){
JSONObject temp= jarr.getJSONObject(i);
System.out.printf(
"name:%s,age:%d\n"
,temp.getString(
"name"
),temp.getBigInteger(
"age"
));
}
for
(Object obj:jarr){
System.out.println(obj.toString());
}
}
}
|
博文转自:http://www.cnblogs.com/wgale025/p/5875430.html