[关闭]
@kimo 2015-12-31T06:46:48.000000Z 字数 1435 阅读 1274

通信--前台篇

android


  客户端拿到json数据后需要将其还原为对象,有两种解析方法

1 JsonObject方式

  1. /**
  2. * 解析json字符串
  3. * @param json
  4. * @return
  5. */
  6. private List<Person> parseJson(String json){
  7. try {
  8. JSONObject object = new JSONObject(json );
  9. List<Person> persons = new ArrayList<>();
  10. int result = object.getInt("result");
  11. if(result ==1){
  12. JSONArray personData = object.getJSONArray("personData");
  13. for(int i=0; i<personData.length(); i++){
  14. Person person = new Person();
  15. JSONObject personObject = personData.getJSONObject(i);
  16. String name = (String) personObject.get("name");
  17. String age = personObject.getString("age");
  18. String url = personObject.getString("url");
  19. person.setName(name);
  20. person.setAge(age);
  21. person.setUrl(url);
  22. List<SchoolInfo> schoolInfosList = new ArrayList<>();
  23. JSONArray schoolInfos = personObject.getJSONArray("schoolInfos");
  24. for(int j=0; j<schoolInfos.length(); j++){
  25. JSONObject school = schoolInfos.getJSONObject(i);
  26. String schoolName = school.getString("school_name");
  27. SchoolInfo info = new SchoolInfo();
  28. info.setSchool_name(schoolName);
  29. schoolInfosList.add(info);
  30. }
  31. person.setSchoolInfos(schoolInfosList);
  32. persons.add(person);
  33. }
  34. return persons;
  35. }else {
  36. Toast.makeText(context, "error,can't get data", Toast.LENGTH_SHORT).show();
  37. }
  38. } catch (JSONException e) {
  39. e.printStackTrace();
  40. }
  41. return null;
  42. }

2 GSON方式

  1. /**
  2. * 解析json字符串
  3. * @param json
  4. * @return
  5. */
  6. private List<Person> parseJson(String json){
  7. Gson gson = new Gson();
  8. Result data1 = gson.fromJson(sb.toString(),Result.class);
  9. return List<Person>list = data1.getPersonData();
  10. }

  由此可见,GSON方式是十分方便的,更推荐使用此种方式解析Json。需要导入GSON.jar请参考通信--后台篇

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注