JSON是一種輕量級的數據交換格式,由于其簡潔性、可讀性和易于生成和解析,成為現代Web應用中常用的數據格式。在Java開發中,有時需要從多層的JSON數據中提取出所需要的信息,以下是使用Java快速提取多層JSON的方法。
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; // JSON數據 String jsonStr = "{\n" + " \"name\": \"Tom\",\n" + " \"age\": 18,\n" + " \"address\": {\n" + " \"province\": \"Guangdong\",\n" + " \"city\": \"Shenzhen\",\n" + " \"district\": \"Nanshan\"\n" + " },\n" + " \"hobbies\": [\n" + " \"reading\",\n" + " \"swimming\",\n" + " \"climbing\"\n" + " ]\n" + "}"; try { // 將JSON字符串解析為JSON對象 JSONObject jsonObj = new JSONObject(jsonStr); // 提取name和age String name = jsonObj.getString("name"); int age = jsonObj.getInt("age"); System.out.println("name: " + name + ", age: " + age); // 提取address中的province和district JSONObject addressObj = jsonObj.getJSONObject("address"); String province = addressObj.getString("province"); String district = addressObj.getString("district"); System.out.println("province: " + province + ", district: " + district); // 提取hobbies中的第二個愛好 JSONArray hobbiesArr = jsonObj.getJSONArray("hobbies"); String hobby2 = hobbiesArr.getString(1); System.out.println("second hobby: " + hobby2); } catch (JSONException e) { e.printStackTrace(); }
以上代碼使用了JSON庫中的JSONObject和JSONArray類,通過調用各種方法來提取JSON數據中的各個字段。需要注意的是,在使用這些方法時,需要保證JSON數據中確實存在相應的字段,否則將拋出JSONException異常。