fast json 主要讲解fastjson 的用法
如果你使用了Maven,mavenrepository配置如下:
<repository>
<id>opensesame</id>
<name>AlibabaOpenSourceRepsoitory</name>
<url>http://code.alibabatech.com/mvn/releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
pom.xml文件中加入依赖依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.0.4</version>
</dependency>
如果没有使用maven,可以直接下载:
Binary:http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.1.1/fastjson-1.1.1.jar Source:http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.1.1/fastjson-1.1.1-sources.jar Subversion:http://code.alibabatech.com/svn/fastjson/
使用介绍: Fastjson的最主要的使用入口是com.alibaba.fastjson.JSON
importcom.alibaba.fastjson.JSON;
publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray
JSONObjectparSEObject(text);//把JSON文本parse成JSONObject
<T>TparSEObject(text,Class<T>clazz);//把JSON文本parse为JavaBean
JSONArrayparseArray(//把JSON文本parse成JSONArray
<T>List<T>parseArray(//把JSON文本parse成JavaBean集合
toJSONString(object);//将JavaBean序列化为JSON文本
object,145)">booleanprettyFormat);//将JavaBean序列化为带格式的JSON文本
toJSON(javaObject);将JavaBean转换为JSONObject或者JSONArray。
代码示例: 代码示例用到类User和Group:
classUser{
privateLongid;
name;
getId(){returnid;}
voidsetId(id){this.id=id;}
getName(){name;}
voidsetName(name){.name=name;}
}
classGroup{
List<User>users=newArrayList<User>();
List<User>getUsers(){users;}
voidsetUsers(List<User>users){.users=users;}
}
Encode代码示例:
Groupgroup=Group();
group.setId(0L);
group.setName("admin");
UserguestUser=User();
guestUser.setId(2L);
guestUser.setName("guest"UserrootUser=rootUser.setId(3L);
rootUser.setName("root"group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
jsonString=JSON.toJSONString(group);
System.out.println(jsonString);
一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的JavaJsonparser。包括自称最快的JackJson; 功能强大,完全支持JavaBean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在JavaSE5.0以上版本;支持Android;开源(Apache2.0)
FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray finalJSONObjectparSEObject(Stringtext);//把JSON文本parse成JSONObject finalTparSEObject(Stringtext,Classclazz);//把JSON文本parse为JavaBean finalJSONArrayparseArray(Stringtext);//把JSON文本parse成JSONArray finalListparseArray(Stringtext,0)">//把JSON文本parse成JavaBean集合 finalStringtoJSONString(Objectobject);//将JavaBean序列化为JSON文本 finalStringtoJSONString(Objectobject,booleanprettyFormat);//将JavaBean序列化为带格式的JSON文本 finalObjecttoJSON(ObjectjavaObject);将JavaBean转换为JSONObject或者JSONArray。
二、FastJson解析JSON步骤 A、服务器端将数据转换成json字符串 首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下(这些可以到fastjson官网下载:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh)
然后将数据转为json字符串,核心函数是: publicstaticStringcreateJsonString(Objectvalue) { StringalibabaJson=JSON.toJSONString(value); returnalibabaJson; } B、客户端将json字符串转换为相应的javaBean 首先客户端也要导入fastjson的两个jar包 1、客户端获取json字符串 publicclassHttpUtil{publicstaticStringgetJsonContent(StringurlStr)try{//获取HttpURLConnection连接对象URLurl=newURL(urlStr);HttpURLConnectionhttpConn=(HttpURLConnection)url.openConnection();//设置连接属性httpConn.setConnectTimeout(3000);httpConn.setDoInput(true);httpConn.setRequestMethod("GET");//获取相应码intrespCode=httpConn.getResponseCode();if(respCode==200)returnConvertStream2Json(httpConn.getInputStream());}catch(MalformedURLExceptione)//TODOAuto-generatedcatchblocke.printStackTrace();catch(IOExceptione)return"";privatestaticStringConvertStream2Json(InputStreaminputStream)StringjsonStr="";//ByteArrayOutputStream相当于内存输出流ByteArrayOutputStreamout=newByteArrayOutputStream();byte[]buffer=newbyte[1024];intlen=0;//将输入流转移到内存输出流中while((len=inputStream.read(buffer,buffer.length))!=-1)out.write(buffer,len);//将内存流转换为字符串jsonStr=newString(out.toByteArray());returnjsonStr;2、使用泛型获取javaBean(核心函数) publicstaticTgetPerson(StringjsonString,Classcls){Tt=null;try{t=JSON.parSEObject(jsonString,cls);}catch(Exceptione){//TODO:handleexceptionreturnt;publicstaticListgetPersons(StringjsonString,73)">Listlist=newArrayList();list=JSON.parseArray(jsonString,73)">returnlist;publicstaticList>listKeyMaps(StringjsonString){List>list=newArrayList>();list=JSON.parSEObject(jsonString, newTypeReference>>(){});} (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|