Java中的JSON多層解析,指在JSON數據中,存在多層嵌套的情況,需要逐層解析。下面通過實際代碼來詳細介紹。
//假設JSON數據為: { "name": "張三", "age": 18, "school": { "name": "清華大學", "location": "北京市海淀區" }, "courses": [ { "name": "Java", "teacher": "李四" }, { "name": "Python", "teacher": "王五" } ] } //1. 使用JSONObject解析第一層數據 JSONObject jsonObject = new JSONObject(jsonStr); //jsonStr為JSON字符串 String name = jsonObject.getString("name"); //獲取name字段值 int age = jsonObject.getInt("age"); //獲取age字段值 //2. 使用JSONObject解析第二層數據 JSONObject schoolJson = jsonObject.getJSONObject("school"); //獲取school字段值 String schoolName = schoolJson.getString("name"); //獲取name字段值 String schoolLocation = schoolJson.getString("location"); //獲取location字段值 //3. 使用JSONArray解析第二層數據 JSONArray coursesArray = jsonObject.getJSONArray("courses"); //獲取courses字段值 for (int i = 0; i< coursesArray.length(); i++) { JSONObject courseJson = coursesArray.getJSONObject(i); String courseName = courseJson.getString("name"); //獲取name字段值 String courseTeacher = courseJson.getString("teacher"); //獲取teacher字段值 } //4. 使用JSONObject和JSONArray結合解析第三層數據(以獲取第二個course的name為例) JSONObject courseJson = jsonObject.getJSONArray("courses").getJSONObject(1); //獲取第二個元素(索引從0開始) String courseName = courseJson.getString("name"); //獲取name字段值
可以看出,JSON多層解析需要對JSONObject和JSONArray類的API方法熟悉并能夠正確使用,同時加強對JSON數據結構的理解。