加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

fastjson

发布时间:2020-12-16 19:39:56 所属栏目:百科 来源:网络整理
导读:fast json 主要讲解fastjson 的用法 如果你使用了 Maven , mavenrepository 配置如下: repository idopensesame/id nameAlibabaOpenSourceRepsoitory/name urlhttp: //code.alibabatech.com/mvn/releases//url snapshots enabled false /enabled /snapshot

fast json 主要讲解fastjson 的用法


如果你使用了Mavenmavenrepository配置如下:

<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文本parseJSONObject或者JSONArray

JSONObjectparSEObject(text)//JSON文本parseJSONObject

<T>TparSEObject(text,Class<T>clazz);//JSON文本parseJavaBean

JSONArrayparseArray(//JSON文本parseJSONArray

<T>List<T>parseArray(//JSON文本parseJavaBean集合

toJSONString(object);//JavaBean序列化为JSON文本

object,145)">booleanprettyFormat);//JavaBean序列化为带格式的JSON文本

toJSON(javaObject);JavaBean转换为JSONObject或者JSONArray

代码示例:
代码示例用到类UserGroup

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文本parseJSONObject或者JSONArray
finalJSONObjectparSEObject(Stringtext)//JSON文本parseJSONObject
finalTparSEObject(Stringtext,Classclazz);//JSON文本parseJavaBean
finalJSONArrayparseArray(Stringtext);//JSON文本parseJSONArray
finalListparseArray(Stringtext,0)">//JSON文本parseJavaBean集合
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>>(){});}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读