Android JSON数据解析

小编在本文中给大家介绍三种Android JSON数据解析的方法,通过这些方法,大家可以了解其中的脉络。

解析方法1:
代码:

  1. public void parseJson(String jsonData){
  2.   
  3. try {
  4. //如果需要解析JSON数据,首先要生成JsonReader对象
  5. JsonReader reader = new JsonReader(new StringReader(jsonData));
  6. /**
  7. * 1.现在开始解析一个数组
  8. * 2.开始解析对象
  9. * 3.解析键值对
  10. * 4.解析键值对
  11. * 5.解析对象结束
  12. * 6.开始解析对象
  13. * 7.解析键值对
  14. * 8.解析键值对
  15. * 9.解析对象结束
  16. * 10.解析数组结束
  17. */
  18. reader.beginArray();
  19. while(reader.hasNext()){//有没有下一个
  20. reader.beginObject();
  21. while(reader.hasNext()){//判断有没有键值对
  22. String tagname = reader.nextName();
  23. if(tagname.equals("name")){
  24. System.out.println("name=------>" + reader.nextString());
  25. }else if(tagname.equals("age")){
  26. System.out.println("age--->" + reader.nextInt());
  27. }
  28.      
  29. }
  30. reader.endObject();
  31. }
  32. reader.endArray();
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. }
复制代码

解析方法2:

代码:

  1. public void parseJson(String jsonData){
  2. System.out.println(jsonData);
  3. Gson gson = new Gson();
  4. User user = gson.fromJson(jsonData, User.class);
  5. System.out.println("name----->" + user.getName());
  6. System.out.println("age----->" + user.getAge());
  7. }
复制代码

注意:这种只能解析对象,不可以解析数组的

解析方法3:

代码:

  1. import java.lang.reflect.Type;
  2. import java.util.Iterator;
  3. import java.util.LinkedList;

  4. import com.google.gson.Gson;
  5. import com.google.gson.reflect.TypeToken;
  6.    
  7. public class JsonUtilsArray {
  8. public void parseJson(String jsonData){
  9. System.out.println(jsonData);
  10. Type listType = new TypeToken<LinkedList<User>>(){}.getType();
  11. Gson gson = new Gson();
  12. LinkedList<User> users= gson.fromJson(jsonData, listType);
  13. for (Iterator iterator = users.iterator(); iterator.hasNext();) {
  14. User user = (User) iterator.next();
  15. System.out.println("name----->" + user.getName());
  16. System.out.println("age----->" + user.getAge());
  17. }
  18. }
  19. }
参考网址: < a   href = "http://www.eoeandroid.com/thread-70069-1-1.html" > 原文地址 </ a >  

你可能感兴趣的:(json,数据解析,键值对)