對json的基本操作
使用json-lib包對json對象進行解析,需要使用如下jar包:
* 1.commons-beanutils-1.8.0.jar
* 2.commons-collections-3.2.1.jar
* 3.commons-lang-2.5.jar
* 4.commons-logging-1.1.1.jar
* 5.ezmorph-1.0.6.jar
* 6.json-lib-2.4-jdk15.jar
json的格式如下:
* {
* "key1" : value1,
* "key2" : value2
* }
以上就是一個json數據,其中key是一個字符串,value是一個object對象,跟map很相像,相當於一個map<String,Object>
除了一個json以外,還有json數組,如下
* [
* {
* "key1" : value1,
* "key2" : value2
* },
* {
* "key1" : value1,
* "key2" : value2
* }
* ]
以上表示一個json數組,其中存放了兩個json對象,相當於一個list<Map<String,Object>>
常用的json對象
- JSONObject 是一個json對象
- JSONArray 是一個json數組,但是里面未必放的是json對象,也可以放字符串等等,常用的方法按下alt + /鍵就可以查看,有集合都有的添加,刪除,數據轉換等
實現的功能:
* 1.1.把一個json字符串或者map集合轉換為jsonobject
* jsonobject json = JSONObject.fromObject(obejct);
*
* 1.2.獲取jsonobejct中的屬性
* Object obj = jsonobject.get("key"); //獲取key對應的值,還有getString("key"),getDouble("key")等
*
* 1.3.添加jsonobject中的屬性
* Object obj = jsonobject.put("key", object) //返回添加前該key值對應的value,如果不存在則返回null
*
* 1.4.刪除jsonobject中的屬性
* Object obj = jsonobject.remove("key"); //返回被刪除的值
*
* 1.5.判斷jsonobject中是否有某個屬性
* Boolean flag = jsonobject.containsKey("key");
*
* 1.6.把json對象轉換成字符串
* String str = jsonobject.toString();
*
* 1.7.把json對象轉換成map集合
* Map map = (Map)JSONObject; //可以直接使用強制轉換
*
* 1.8.獲取json中的屬性個數
* int size = jsonobejct.size();
*
*
* 2.1.把一個json數組轉換為jsonarray
* JSONArray array = JSONArray.fromObject(arrayStr/map);
*
* 2.2.獲取jsonarray中的某個對象jsonobject
* jsonobject = array.get(index);
*
* 2.3.添加一個元素
* boolean flag = array.add(object);
*
* 2.4.刪除一個元素
* booelan flag = array.remove(index); //也可以通過一個object匹配
*
* 2.5.轉換為字符串
* toString();
*
* 2.6.遍歷每一個元素
* 可以使用iterator遍歷,與list一致,或者通過size()循環
*
* 2.7.轉換成list集合
* Object object = array.toArray();
* List list = Arrays.asList((Object []) object);
*
* 2.8.獲取數組中的個數
* int size = array.size();
*
*
獲取如下json的lastName屬性:
* {
* "name":
* {
* "firstName" : "json",
* "lastName" : "dad"
* },
*
* "age":24
* }
*
* json.getJson("name").getString("lastName");
*
*