Java的Json解析包FastJson使用

阿里巴巴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。
 
以上加*的是一些项目中的常用方法。
以下是自己练习写的代码:
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值