JSON文档解析 三种方法

private String jsonData1="[{\"name\":\"renhaili\",\"age\":20},{\"name\":\"zhouxiaodong\",\"age\":21}]";
private String jsonData2="{\"name\":\"xiong\",\"age\":18}";
 
/**
 * 解析方法一
 * @param jsonData
 */
 public void parseJson(String jsonData) {
  // 如果需要从解析json数据,首先要生成一个jsonReader对象
  JsonReader reader = new JsonReader(new StringReader(jsonData));
  try {
   // 现在开始解析
   reader.beginArray();// 开始解析数组
   while (reader.hasNext()) {
    reader.beginObject();// 开始解析对象
    while (reader.hasNext()) {
     String tagName = reader.nextName();
     if (tagName.equals("name")) {
//      System.out.println(reader.nextString());
      Log.v("name", reader.nextString());
     } else if (tagName.equals("age")) {
//      System.out.println(reader.nextInt());
      Log.v("age", ""+reader.nextInt());
     }
    }
    reader.endObject();// 结束对象解析
   }
   reader.endArray();// 结束数组解析
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 /**
  * 解析方法2
  * @param jsonData
  */
 public void pareUserFromJson(String jsonData){
  Gson gson=new Gson();//创建Gson对象,
  User user=gson.fromJson(jsonData,User.class);
  Log.v("用户名:",user.getName());
  Log.v("年龄:",""+user.getAge());
 }
 /**
  * 解析方法3
  * @param jsonData
  */
 public void parseJsonFromUser(String jsonData){
  //likedlist是双向列表
  Type listType=new TypeToken<LinkedList<User>>(){}.getType();
  Gson gson=new Gson();
  LinkedList<User> users=gson.fromJson(jsonData, listType);
  for(Iterator<User> iterator=users.iterator();iterator.hasNext();){
   User user=(User)iterator.next();
   Log.v("用户名:",user.getName());
   Log.v("年龄:",""+user.getAge());
  }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值