Android json數據解析詳解
移動開發經常要與服務器數據交互,也常使用json數據格式,那就說說Android json解析。
1.最簡單json格式解析如下:
//解析json ry { JSONTokener jsonParser = new JSONTokener(strResult); JSONObject jsonObj = (JSONObject) jsonParser.nextValue(); String strsportsTitle = jsonObj.getString("sportsTitle"); int nid= jsonObj.getInt("id"); } catch (JSONException e) { System.out.println("Json parse error"); e.printStackTrace(); } 字符串strResult就是需要解析json數據了。用過json數據格式都知道,json數據格式是一個鍵對應一個值。你可以先打印出原始數據strResult,就知道jsonObj.getString("sportsTitle");這雙引號里面鍵是什么。
2.數組形式json數據解析如下:
try { JSONArray jsonArray = new JSONArray(strResult); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObj = jsonArray.optJSONObject(i); id[i] = jsonObj.getInt("id"); time[i] = jsonObj.getString("time"); users[i] = jsonObj.getString("users"); roomTitle[i] = jsonObj.getString("roomTitle"); } } catch (JSONException e) { System.out.println("Jsons parse error !"); e.printStackTrace(); } 3.json里面嵌套json數據解析如下:
try { JSONArray jsonArray = new JSONArray(strResult); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObj = jsonArray.optJSONObject(i); String strachievement = jsonObj.getString("achievement"); String strmember = jsonObj.getString("member"); try { JSONTokener jsonParser1 = new JSONTokener( achievement); JSONObject jsonObj1 = (JSONObject) jsonParser1 .nextValue(); nametype[i] = jsonObj1.getString("name"); type[i] = jsonObj1.getString("type"); } catch (JSONException e) { System.out.println("Json parse error"); e.printStackTrace(); } } } catch (JSONException e) { System.out.println("Json parse error"); e.printStackTrace(); } 嵌套json數據,其實都是一樣的。多解析一次而已。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答