在Java中使用JSON進行數據處理已經成為一種趨勢,但是對于多層嵌套的JSON數據,如何高效地進行取值卻是一件頭痛的事情。可以通過連環取來解決這個問題。
1.先從最外層的JSONObject開始,使用get方法獲取每一層必要的JSONObject或JSONArray。
JSONObject jsonObject = new JSONObject(jsonStr); JSONArray jsonArray = jsonObject.getJSONArray("path");
2.根據需要獲取每一層的JSONObject或JSONArray。注意JSONArray中可能包含多個JSONObject。
JSONObject jsonObject = jsonArray.getJSONObject(0); JSONArray jsonArray1 = jsonObject.getJSONArray("path");
3.繼續獲取每一層的JSONObject或JSONArray直到到達需要的數據。
String str = jsonArray1.getJSONObject(0).getString("path");
4.最后提高效率的方法是使用opt方法代替get方法,在取值時加上默認值即可。
String str = jsonArray1.optJSONObject(0).optString("path", "");
需要注意的是,要對每一層的數據進行null判斷以避免出現NullPointerException。