fastjson解析json简介
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
一、簡介
阿里巴巴FastJson是一個Json處理工具包,是一個Java語言編寫的高性能功能完善的JSON庫。,包括“序列化”和“反序列化”兩部分,它具備如下特征:
速度最快,測試表明,fastjson具有極快的性能,超越任其他的Java Json parser。包括自稱最快的JackJson;
功能強(qiáng)大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;無依賴,能夠直接運行在Java SE 5.0以上版本;支持Android;開源 (Apache 2.0)
Fastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態(tài)方法直接完成。
二、FastJson解析Json步驟
A、服務(wù)器端將數(shù)據(jù)轉(zhuǎn)換成json字符串
??????首先、服務(wù)器端項目要導(dǎo)入阿里巴巴的fastjson的jar包至builtPath路徑下(這些可以到fastjson官網(wǎng)下載:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh)
?
Fastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態(tài)方法直接完成。
?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轉(zhuǎn)換為JSONObject或者JSONArray。?
B、客戶端將json字符串轉(zhuǎn)換為相應(yīng)的javaBean
?首先客戶端也要導(dǎo)入fastjson的兩個jar包
1、客戶端獲取json字符串
/**?接收path服務(wù)器端返回的?InputStream,?轉(zhuǎn)換為?json字符串*?@author?ben**/ public?class?HttpUtils?{public?static?String?getJsonContent(String?url_path?,String?encode){String?jsonString?=?"";try?{URL?url?=?new?URL(url_path);???HttpURLConnection?connection?=?(HttpURLConnection)url.openConnection();connection.setConnectTimeout(3000);//用POST方式獲取數(shù)據(jù),也可以改成GETconnection.setRequestMethod("POST");//從服務(wù)器獲得數(shù)據(jù)connection.setDoInput(true);??int?responseCode?=?connection.getResponseCode();???if?(200?==?responseCode)?{jsonString?=?changeInputStream(connection.getInputStream(),encode);}?}?catch?(Exception?e)?{e.printStackTrace();}return?jsonString;}private?static?String?changeInputStream(InputStream?inputStream?,?String?encode)?throws?IOException?{String??jsonString?=?null;ByteArrayOutputStream?outputStream?=?new?ByteArrayOutputStream();byte[]?data?=?new?byte[1024];int?len?=?0;while((len=inputStream.read(data))!=-1){outputStream.write(data,?0,?len);}jsonString?=?new?String(outputStream.toByteArray(),?encode);inputStream.close();return?jsonString;}}2、利用FastJsonTools工具類,將得到的Json字符串進(jìn)行轉(zhuǎn)化:
public?class?FastJsonTools?{/***?用fastjson?將json字符串解析為一個?JavaBean*?*?@param?jsonString*?@param?cls*?@return*/public?static?<T>?T?getObject(String?jsonString,?Class<T>?cls)?{T?t?=?null;try?{t?=?JSON.parseObject(jsonString,?cls);}?catch?(Exception?e)?{//?TODO:?handle?exceptione.printStackTrace();}return?t;}/***?用fastjson?將json字符串?解析成為一個?List<JavaBean>?及?List<String>*?*?@param?jsonString*?@param?cls*?@return*/public?static?<T>?List<T>?getList(String?jsonString,?Class<T>?cls)?{List<T>?list?=?new?ArrayList<T>();try?{list?=?JSON.parseArray(jsonString,?cls);}?catch?(Exception?e)?{//?TODO:?handle?exception}return?list;}/***?用fastjson?將jsonString?解析成?List<Map<String,Object>>*?*?@param?jsonString*?@return*/public?static?List<Map<String,?Object>>?getListMap(String?jsonString)?{List<Map<String,?Object>>?list?=?new?ArrayList<Map<String,?Object>>();try?{//?兩種寫法//?list?=?JSON.parseObject(jsonString,?new//?TypeReference<List<Map<String,?Object>>>(){}.getType());list?=?JSON.parseObject(jsonString,new?TypeReference<List<Map<String,?Object>>>()?{});}?catch?(Exception?e)?{//?TODO:?handle?exception}return?list;} }?
轉(zhuǎn)載于:https://my.oschina.net/bigdataer/blog/424748
總結(jié)
以上是生活随笔為你收集整理的fastjson解析json简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MYSQL查看和修改存储引擎
- 下一篇: 写接口的体会