高性能JSON库---FastJson(阿里巴巴)

1.FastJSON简介

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。


下载 

你可以从以下地址中下载fastjson: 

Maven中央仓库 http://repo1.maven.org/maven2/com/alibaba/fastjson/ 
Alibaba OpenSesame开源平台 http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/ 


源码 
https://github.com/alibaba/fastjson


Fastjson是一个json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:

  1. 速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
  2. 功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
  3. 无依赖,能够直接运行在Java SE 5.0以上版本
  4. 支持Android。
  5. 开源 (Apache 2.0)


2.简单使用

详细使用的话,大家可以去官网看,介绍很详细,而且是中文。

使用Maven的话,配置pom.xml文件,在dependencies中添加依赖: 

[java] view plaincopy
  1. <dependency>  
  2.     <groupId>com.alibaba</groupId>  
  3.     <artifactId>fastjson</artifactId>  
  4.     <version>1.1.36</version>  
  5. </dependency>  

下面是简单的测试,参考官网上的数据

[java] view plaincopy
  1. package org.ygy.fastjson;  
  2.   
  3. import org.junit.Test;  
  4.   
  5. import com.alibaba.fastjson.JSON;  
  6. import com.alibaba.fastjson.JSONObject;  
  7. import com.alibaba.fastjson.serializer.SerializerFeature;  
  8.   
  9.   
  10. public class JSONTest{  
  11.       
  12.     /** 
  13.      *  
  14.      * @author yuguiyang 
  15.      * @description 序列化 
  16.      * @time 2013-9-12 
  17.      * @version 1.0 
  18.      */  
  19.     @Test  
  20.     public void test2JsonString() {  
  21.         User user = new User(100 , "lufei" , "shishi");  
  22.           
  23.         String json = JSON.toJSONString(user);  
  24.           
  25.         System.out.println(json);  
  26.           
  27.     }  
  28.       
  29.     /** 
  30.      *  
  31.      * @author yuguiyang 
  32.      * @description 反序列化为JSONObject对象 
  33.      * @time 2013-9-12 
  34.      * @version 1.0 
  35.      */  
  36.     @Test  
  37.     public void testParseObject() {  
  38.         String json = JSON.toJSONString(new User(1002 , "suolong" , "shishi"));  
  39.           
  40.         JSONObject obj = JSON.parseObject(json);  
  41.           
  42.         System.out.println(obj);  
  43.         System.out.println(obj.get("id"));  
  44.         System.out.println(obj.getString("name"));  
  45.     }  
  46.       
  47.     /** 
  48.      *  
  49.      * @author yuguiyang 
  50.      * @description 反序列化为JavaBean 
  51.      * @time 2013-9-12 
  52.      * @version 1.0 
  53.      */  
  54.     @Test  
  55.     public void testParseBean() {  
  56.         String json = JSON.toJSONString(new User(1002 , "suolong" , "shishi"));  
  57.           
  58.         User user = JSON.parseObject(json , User.class);  
  59.           
  60.         System.out.println(user.getId() + " , " + user.getName() + " , " + user.getPassword());   
  61.     }  
  62.       
  63.     /** 
  64.      *  
  65.      * @author yuguiyang 
  66.      * @description 将JavaBean对象转换为JSON对象 
  67.      * @time 2013-9-12 
  68.      * @version 1.0 
  69.      */  
  70.     @Test  
  71.     public void test2Json() {  
  72.         User user = new User(222 , "qiaoba" , "haha");  
  73.           
  74.         JSONObject obj = (JSONObject) JSON.toJSON(user);  
  75.           
  76.         System.out.println(obj.get("id") + ","  + obj.get("name"));  
  77.     }  
  78.       
  79.     @Test  
  80.     public void testSeria() {  
  81.         User user = new User(222 , "qiaoba" , "haha");  
  82.         String json = JSON.toJSONString(user , SerializerFeature.WriteClassName);  
  83.           
  84.           
  85.         User juser = (User) JSON.parse(json);  
  86.           
  87.         System.out.println(juser);  
  88.     }  
  89. }  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。