解析步驟
1)、讀取html文件原始碼,獲取一個json字符串
InputStream in = conn.getInputStream(); String jsonStr = DataUtil.Stream2String(in);
2)、將字符串傳入響應的JSON構造函數中
①、通過構造函數將json字符串轉換成json對象
JSONObject jsonObject = new JSONObject(jsonStr);
②、通過構造函數將json字符串轉換成json數組:
JSONArray array = new JSONArray(jsonStr);
3)、解析出JSON中的數據信息:
①、從json對象中獲取你所需要的鍵所對應的值
JSONObject json=jsonObject.getJSONObject("weatherinfo") String city = json.getString("city") String temp = json.getString("temp")
②、遍歷JSON數組,獲取數組中每一個json對象,同時可以獲取json對象中鍵對應的值
for (int i = 0; i < array.length(); i++) { JSONObject obj = array.getJSONObject(i); String title=obj.getString("title"); String description=obj.getString("description"); }
注意:
①json數組並非全是由json對象組成的數組
②json數組中的每一個元素數據類型可以不相同
如:[94043,90210]或者[「zhangsan」,24]類似於javascript中的數組
5、生成JSON對象和數組:
1)生成JSON:
方法1、創建一個map,通過構造方法將map轉換成json對象
Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "zhangsan"); map.put("age", 24); JSONObject json = new JSONObject(map);
方法2、創建一個json對象,通過put方法添加數據
JSONObject json=new JSONObject() json.put("name", "zhangsan") json.put("age", 24)
2)生成JSON數組:
方法1、創建一個list,通過構造方法將list轉換成json對象
Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("name", "zhangsan"); map1.put("age", 24); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("name", "lisi"); map2.put("age", 25); List<Map<String, Object>> list=new ArrayList<Map<String,Object>>(); list.add(map1); list.add(map2); JSONArray array=new JSONArray(list); System.out.println(array.toString());