什么是JSON?
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。
现在我们就来研究一下fastJson。
Fastjson是国内著名的电子商务互联网公司阿里巴巴内部开发的用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
1).速度最快,测试表明,fastjson具有极快的性能,超越任其他的javajsonparser。包括自称最快的jackson。
2).功能强大,完全支持javabean、集合、Map、日期、Enum,支持范型,支持自省。
3).无依赖,能够直接运行在JavaSE5.0以上版本
4).支持Android。
5).开源(Apache2.0)
这是fastJson的网址:http://code.alibabatech.com/wiki/display/FastJSON/Overview
其中包含了json数据处理的教程,jar下载地址,example样例等。
下面给出fastJson处理json数据格式的代码样例:
- packagefastJson.test;
-
- importcom.alibaba.fastjson.JSON;
- importcom.alibaba.fastjson.JSONObject;
- importcom.alibaba.fastjson.serializer.SerializerFeature;
- publicclassFastJsonTest
- {
-
-
-
- */
- voidtoJsonString()
- Useruser=newUser("testFastJson001","maks",105);
- Stringtext=JSON.toJSONString(user);
- System.out.println("toJsonString()方法:text="+text);
- //输出结果:text={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- *反序列化为json对象
- */
- voidparseJsonObject()
- {
- Stringtext="{"age":105,"id":"testFastJson001","name":"maks"}";
- JSONObjectjson=JSON.parSEObject(text);
- System.out.println("parseJsonObject()方法:json=="+json);
- //输出结果:json=={"age":105,"name":"maks"}
- }
- *反序列化为javaBean对象
- voidparseBeanObject()
- Stringtext="{"age":105,"name":"maks"}";
- Useruser=(User)JSON.parSEObject(text,User.class);
- System.out.println("parseBeanObject()方法:user=="+user.getId()+","+user.getName()+","+user.getAge());
- //输出结果:user==testFastJson001,maks,105
- *将javaBean转化为json对象
- voidbean2Json()
- Useruser=105);
- JSONObjectjsonObj=(JSONObject)JSON.toJSON(user);
- System.out.println("bean2Json()方法:jsonObj=="+jsonObj);
- //输出结果:jsonObj=={"age":105,0); background-color:inherit">*全序列化直接把javabean序列化为json文本之后,能够按照原来的类型反序列化回来。支持全序列化,需要打开SerializerFeature.WriteClassName特性
- voidparseJSONAndBeanEachother()
- SerializerFeature[]featureArr={SerializerFeature.WriteClassName};
- Stringtext=JSON.toJSONString(user,featureArr);
- System.out.println("parseJSONAndBeanEachother()方法:text=="+text);
- //输出结果:text=={"@type":"fastJson.test.User","age":105,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> UseruserObj=(User)JSON.parse(text);
- System.out.println("parseJSONAndBeanEachother()方法:userObj=="+userObj.getId()+","+userObj.getName()+","+userObj.getAge());
- //输出结果:userObj==testFastJson001,153); background-color:inherit; font-weight:bold">staticvoidmain(String[]args)
- FastJsonTesttest=newFastJsonTest();
- //序列化
- test.toJsonString();
- //反序列化为json对象
- test.parseJsonObject();
- //反序列化为javaBean对象
- test.parseBeanObject();
- //将javaBean转化为json对象
- test.bean2Json();
- //全序列化
- test.parseJSONAndBeanEachother();
- }
控制台输出结果:
toJsonString()方法:text={"age":105,"name":"maks"}
- parseJsonObject()方法:json=={"age":105,"name":"maks"}
- parseBeanObject()方法:user==testFastJson001,105
- bean2Json()方法:jsonObj=={"age":105,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> parseJSONAndBeanEachother()方法:text=={"@type":"fastJson.test.User",248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> parseJSONAndBeanEachother()方法:userObj==testFastJson001,105
附:javaBean类User.java
importjava.io.Serializable;
- classUserimplementsSerializable{
- privatefinallongserialVersionUID=1L;
- privateStringid;
- privateStringname;
- intage;
- publicUser(){
- super();
- publicUser(Stringid,Stringname,intage){
- this.id=id;
- this.name=name;
- this.age=age;
- intgetAge(){
- returnage;
- voidsetAge(intage){
- publicStringgetId(){
- returnid;
- voidsetId(Stringid){
- publicStringgetName(){
- returnname;
- voidsetName(Stringname){
- this.name=name;
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|