1、网络JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | { "resultCode": "200", "data": [ { "brand": "Audi", "type": "A8L W12" }, { "brand": "BMW", "type": "760Li" }, { "brand": "Maybach", "type": "S600" }, { "brand": "Rolls Royce", "type": "Patntom" } ] } |
2、网络请求参考:Android开发基础控件HttpURLConnection网络请求
3、JSONObject相当于hashMap,有getString、getJSONArray等方法取值;
4、JSONArray相当于ArrayList集合,循环遍历从中取JSONObject对象;
5、将上述JSON转换成Java对象,新建一个SAResponse用来接收整个JSON,再创建一个SAObject接收内部JSONObject;
关键代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public void responseJsonFromString(String str){ Log.i("SALog", str); SAResponse res = new SAResponse(); try { // 新建一个JSONObject对象接收整个JSON; JSONObject resJson = new JSONObject(str); // getString可直接取出JSONObject中键对应的值; res.setCode(resJson.getString("resultCode")); // getJSONArray取JSON当中的数组 JSONArray jsonArray = resJson.getJSONArray("data"); ArrayList<SAObject> array = new ArrayList<>(); // 遍历JSONArray并将其中的JSONObject元素转换成对象 for (int i = 0; i < jsonArray.length(); i++){ JSONObject jsonObj = jsonArray.getJSONObject(i); SAObject object = new SAObject(); object.setBrand(jsonObj.getString("brand")); object.setType(jsonObj.getString("type")); array.add(object); } res.setArray(array); } catch (JSONException e) { e.printStackTrace(); } Log.i("SALog", res.toString()); } |