說起JSON, 大家就談不上陌生了, 因為對於資料傳輸語言, 各位只認json, 即使有XML語言, 但是各位很少用吧。 我也是, 但是之前用過的json轉換工具各種各樣, 我記憶中有過GSON(google)、fastJSON(阿裡巴巴)、jsonlib等等。 但是這次使用的JSONObject, 我只是臨時抱佛腳, 為什麼這樣說?因為這次我是被逼著吃透了它處理物件和json、普通字串和json之間的相互轉化。
最近在公司主要做介面開發, 主要是通過和協力廠商機構聯合開發介面, 難免存在資料的共用和處理, 大致需求就是我們調用協力廠商介面, 他們的介面返回給我們一定格式的json資料, 最後我們後臺開發將資料處理成我們這邊APP端所需的資料。
需求一:調用協力廠商介面返回json字串, 我們自己處理成所需格式的json資料?
首先調用協力廠商介面返回的json字串格式如下:
1 data="{"status":"查詢成功","data":{"total":143,"list":[{"exceptionnum":"28","areacn":"余杭區","areaid":"330110000000000000","comnum":"150"},{"exceptionnum":"22","areacn":"拱墅區","areaid":"330105000000000000","comnum":"97"},{"exceptionnum":"22","areacn":"蕭山區","areaid":"330109000000000000","comnum":"178"},......]},"code":"1"}"其次我們需要處理成我們自己的json資料。 首先呢就是需要將字串資料轉成JSONObject物件後, 才可以調用它的一系列API方法來處理。
1 JSONObject object = JSONObject.fromObject(data);最後根據上面給出的data資料格式分析得出, 它的內部資料結構是鍵值對的形式存儲資料的,
1 //String code = object.get("code").toString; 2 String code = object.getString("code");【示例代碼二】
1JSONArray jsonArray = object.getJSONObject("data").getJSONArray("list");//獲取小data中的list資料 2 total = object.getJSONObject("data").get("total").toString; //獲取小data中的total資料
需求二:往JSONObject物件中添加屬性及屬性值, 最後將JSONObjecct物件轉成json資料返回?
因為JSONObject物件存儲資料的鍵值對兒的形式來存儲的, 類似于map集合存儲資料, 我們最關心的是如何將JSONObject物件轉成json格式的字串返給調用者, 這就很簡單了, 不多說了,
其實對於json資料的處理就沒什麼可說的, 我這次主要目的是想記錄住JSONObject是如何操作一些字串並如何獲取層級值的, 沒什麼技術含量, 望大家需要時候瞅一眼。
本文個人創建, 如有錯誤請指正, 共勉。