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 >  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值