@kimo
2015-12-31T06:46:48.000000Z
字数 1435
阅读 1274
android
客户端拿到json数据后需要将其还原为对象,有两种解析方法
/*** 解析json字符串* @param json* @return*/private List<Person> parseJson(String json){try {JSONObject object = new JSONObject(json );List<Person> persons = new ArrayList<>();int result = object.getInt("result");if(result ==1){JSONArray personData = object.getJSONArray("personData");for(int i=0; i<personData.length(); i++){Person person = new Person();JSONObject personObject = personData.getJSONObject(i);String name = (String) personObject.get("name");String age = personObject.getString("age");String url = personObject.getString("url");person.setName(name);person.setAge(age);person.setUrl(url);List<SchoolInfo> schoolInfosList = new ArrayList<>();JSONArray schoolInfos = personObject.getJSONArray("schoolInfos");for(int j=0; j<schoolInfos.length(); j++){JSONObject school = schoolInfos.getJSONObject(i);String schoolName = school.getString("school_name");SchoolInfo info = new SchoolInfo();info.setSchool_name(schoolName);schoolInfosList.add(info);}person.setSchoolInfos(schoolInfosList);persons.add(person);}return persons;}else {Toast.makeText(context, "error,can't get data", Toast.LENGTH_SHORT).show();}} catch (JSONException e) {e.printStackTrace();}return null;}
/*** 解析json字符串* @param json* @return*/private List<Person> parseJson(String json){Gson gson = new Gson();Result data1 = gson.fromJson(sb.toString(),Result.class);return List<Person>list = data1.getPersonData();}
由此可见,GSON方式是十分方便的,更推荐使用此种方式解析Json。需要导入GSON.jar请参考通信--后台篇