標籤:style http color io os 使用 ar java for
WebBuilder使用的操作json的jar包是org.json,下面是相關的文檔及源碼,搜尋就可得
文檔:http://www.json.org/javadoc/org/json/JSONObject.html
源碼:https://github.com/douglascrockford/JSON-java
本文預設讀者熟練使用JSON,瞭解JSON文法,開始正題:
從文檔和源碼看來org.json沒有多少東西,的確他就是很簡單,沒有多少東西,在這幾個僅有的類中,我們要經常使用也只有JSONArray和JSONObject兩個,先看一下JSONObject
(1)建構函式(重點關注以下幾個):
JSONObject() 構造一個空的JSON對象:{} |
JSONObject(JSONObject jo, java.lang.String[] names) 通過其他的JSONObject構建,取其中的幾個KEY |
|
JSONObject(java.util.Map map) 根據map構造,我們都知道map就是索引值對,跟JSON一樣. |
|
JSONObject(java.lang.String source) 根據一個字串構造,需要注意的是字串要符合 json的文法{} |
|
(2)重要方法,最需要關注的方法就是讀和寫,讀有兩個方法get和opt,兩個方法都用於讀取,區別是如果提供的KEY並不存在,get會拋出異常,而opt會返回一個預設值
有大量getInt(String key) ;getString(...);optDouble()..........
對於改,寫操作只有一個方法put,put方法的使用方式是put(key,newValue);這樣就基本上掌握了JSONObject的使用了,下面還有幾個方法,其他的冷門如果遇到我們再補充
has(key),isNull(key)判斷key是否存在
keys()擷取所有的key,傳回值為Iterator集合
remove(key)移除某屬性
toString()產生json字串
JSONArray就是一個數組,當然準確地說應該是個ArrayList,這點我們可以從源碼的建構函式看到,同樣我們先關注他的建構函式,與JSONObject相同有一個空的建構函式,一個根據字串的建構函式,比較JSONObject有一個根據map的建構函式,JSONArray有一個根據Collection的建構函式。
JSONArray的方法我們同樣使用get和opt來讀取資料,put方法來添加修改
注意一點:操作JSONObject我們都是使用key來操作的,但JSONArray我們是使用INDEX下標值來操作的。
org.json的知識就是上面這些,我們來看看工具類JsonUtil使用它做了什麼:
1.public static HashMap<JSONObject, JSONObject> getRelations(JSONArray jsonArray, ArrayList<JSONObject> children, String key){}
調用方法2,擷取關係map
2.private static void markParent
(HashMap<JSONObject, JSONObject> map,JSONObject parent,JSONArray jsonArray,ArrayList<JSONObject> children, String key){}
3.public static String insert(JSONArray ja, String text, int index)
在數組的某個位置插入內容
4.public static JSONObject readObject(File file)
讀取檔案內容轉換為JSONObject
5.public static JSONArray readArray(File file)
讀取檔案內容轉換為JSONArray
6.public static String optString(JSONObject jo, String key)
在一個JSONObject中找出key對應的value
7.public static String optString(JSONArray ja, int index)
在一個JSONArray裡找到一個下標對應值
8.public static Object opt(JSONObject jo, String key)
與6相似,返回Object
9.public static Object opt(JSONArray ja, int index)
與7相似,返回Object
10.public static void clear(JSONObject jo)
把JSONObject的每一個屬性都設定為空白
11.public static String getText(ArrayList<String> list)
把一個ArrayList轉化為字串數組的形式
12.public static JSONObject findObject(JSONArray ja, String key, String text)
在JSONArray裡找出一個符合key,text的JSONObject
JsonUtil(工具類)