国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

fastjson使用入門

2019-11-06 09:37:27
字體:
來源:轉載
供稿:網友

做客戶端開發要經常的和服務端進行交互,現在基本上都是使用json進行交互的,所以對于json的生成和解析變得尤為重要,下面對自己日常工作中使用json的進行一個記錄如下,以便一些剛學習的小伙伴參考和自己以后翻閱。

一、首先我們需要先添加fastjson的依賴:

compile 'com.alibaba:fastjson:1.2.24'

二、使用fastjson來”制造”json請求數據

我們在日常和服務器交互的時候,經常是通過json字符串進行的,首先就先演示下如何造出下面的json字符串:

{ "cmd":"myApp/app/userCenter/queryFriend", "userToken":"bfcb38b5bcbf463af031a1e7b9d284af", "parameters": { "friend":"myGirlFriends" }}

初步通過下面的代碼實現:

//parametersMap用來生成parametersMap<String, String> parametersMap = new HashMap<>();parametersMap.put("friend", "myGirlFriends");//upMap用來生成最終的上傳數據Map<String, Object> upMap = new HashMap<>();upMap.put("cmd", "myApp/app/userCenter/queryFriend");upMap.put("userToken", "fc8b87f32bbdd8200de192350fd133cc");upMap.put("parameters", parametersMap);

這個時候的數據是這樣的:

{ cmd=myApp/app/userCenter/queryFriend, userToken=fc8b87f32bbdd8200de192350fd133cc, parameters={ friend=myGirlFriends }}

上面只是生成了一組map對象,我們和服務器交互是通過json字符串進行的,請看下面代碼:

//JSON包名為:import com.alibaba.fastjson.JSON;String upParams = JSON.JSON.toJSONString(upMap);

這個時候upParams的結構就是我們想要的結構了

{ "cmd": "myApp/app/userCenter/queryFriend", "userToken": "fc8b87f32bbdd8200de192350fd133cc", "parameters": { "friend": "myGirlFriends" }}

upParams可以用來發送請求了。通過上面的例子,基本可以滿足和服務器交互的請求格式,格式復雜點話,可能會有多層嵌套,只用使用Map來制造嵌套,最后使用fastjson進行轉換就好了。

三、解析json字符串相關的操作

比如現在有一個json字符串需要我們解析,如下:

{ "name": "sean", "id": "1", "joined": [ { "joinName": "joined1", "joinId": "10" }, { "joinName": "joined2", "joinId": "11" }, { "joinName": "joined3", "joinId": "12" } ]}

獲得這個json對象 只需要一行代碼即可完成:

//string:json字符串//jsonObject:生成的json對象JSONObject jsonObject = JSON.parSEObject(string);

1. 獲取json對象中的一個元素的值:

string name = jsonObject.getString("name");Log.d("name= "+name);

得到的值為name= sean

2. 獲取json對象中的一個數組

一行代碼:

//jsonObject:json對象//joined:json對象中的一個字段,里面保存的是一個json數組。JSONArray joinedArray = jsonObject .getJSONArray("joined");此時,joinedArray 中的值為: [ { "joinName": "joined1", "joinId": "10" }, { "joinName": "joined2", "joinId": "11" }, { "joinName": "joined3", "joinId": "12" }]

遍歷該數組:

for (int i = 0; i < joinedArray.size(); i++) { JSONObject obj = joinedArray.getJSONObject(i); Log.d("id= "+obj.getJoinId); Log.d("name= "+obj.getJoinName);}

此時打印數據:

id= 10name= joined1id= 11name= joined2id= 12name= joined3

以上是個人總結,有什么不對的地方歡迎指出、交流。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉木乃县| 明溪县| 通海县| 庆阳市| 岗巴县| 泽州县| 通江县| 湟源县| 钟山县| 洛浦县| 皮山县| 确山县| 长岭县| 镇巴县| 垦利县| 商都县| 吴堡县| 成安县| 石首市| 乌恰县| 如皋市| 唐河县| 温宿县| 银川市| 和林格尔县| 桃江县| 安远县| 万载县| 杭锦后旗| 抚顺市| 大理市| 商城县| 阳原县| 巨野县| 民丰县| 克拉玛依市| 日土县| 安顺市| 彭州市| 沾化县| 大连市|