Android解析JSON数据的方法分析

 更新时间:2016年06月23日 11:09:50   作者:hbiao68  
这篇文章主要介绍了Android解析JSON数据的方法,结合实例形式演示了Android解析json格式数据的原理与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Android解析JSON数据的方法。分享给大家供大家参考,具体如下:

JSON作为一种“轻量”的数据结构传递数据,在JS中有广泛的应用

Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包;自从Android3.0中已经合入了该解析器的功能,但之前的版本是没有的。

findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
    jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
    MainActivity.parseJson(jsonData);
  }
});
public static void parseJson(String jsonStr){
  //如果要解析JSON数据,首先要有一个JsonReader对象
  JsonReader jsonReader = new JsonReader(new StringReader(jsonStr));
  try {
  //开始遍历数组(多个JSON对象)
    jsonReader.beginArray();
    while(jsonReader.hasNext()){
    //开始遍历JSON对象(含有多个属性)
      jsonReader.beginObject();
      while(jsonReader.hasNext()){
        String tagName = jsonReader.nextName();
        if(tagName.equals("name")){
          System.out.println("name --> " + jsonReader.nextString());
        }else if(tagName.equals("age")){
          System.out.println("age --> " + jsonReader.nextString());
        }
      }
    //遍历JSON对象结束
      jsonReader.endObject();
    }
    //遍历数组结束
    jsonReader.endArray();
  } catch (IOException e) {
    e.printStackTrace();
  }
}

将JSON格式转换为类的步骤如下:

//先定义一个类
public class User {
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}
//只将一组数据转换的方法
findViewById(R.id.parseObj).setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
    String jsonData = "{\"name\":\"Michael\",\"age\":20}";
    Gson gson = new Gson();
    User user = gson.fromJson(jsonData, User.class);
    System.out.println("name--->" + user.getName());
    System.out.println("age---->" + user.getAge());
  }
});
//将多组数据转换的方法
findViewById(R.id.parseObjs).setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
    String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
    Type listType = new TypeToken<LinkedList<User>>(){}.getType();
    Gson gson = new Gson();
    LinkedList<User> users = gson.fromJson(jsonData, listType);
    for (Iterator iterator = users.iterator(); iterator.hasNext();) {
      User user = (User) iterator.next();
      System.out.println("name--->" + user.getName());
      System.out.println("age---->" + user.getAge());
    }
  }
});

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • 浅析Android位置权限以及数组寻找索引的坑

    浅析Android位置权限以及数组寻找索引的坑

    这篇文章给大家分享了Android位置权限以及数组寻找索引的坑的相关知识点内容,有兴趣的朋友可以参考学习下。
    2018-07-07
  • Android实现多点触控,自由缩放图片的实例代码

    Android实现多点触控,自由缩放图片的实例代码

    本篇文章主要介绍了Android实现多点触控,自由缩放图片的实例代码,可以自由地对图片进行缩放和移动,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • android仿iphone主题效果的主菜单

    android仿iphone主题效果的主菜单

    这篇文章主要为大家详细介绍了android仿iphone主题效果的主菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • android仿360加速球实现内存释放

    android仿360加速球实现内存释放

    本篇文章实现了Android仿360加速球实现内存释放,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • android WebView组件使用总结

    android WebView组件使用总结

    浏览器控件是每个开发环境都具备的,这为马甲神功提供了用武之地,windows的有webbrowser,android和ios都有webview;本篇主要介绍android的webview之强大,感兴趣的朋友可以研究下
    2012-12-12
  • Android开发学习路线图

    Android开发学习路线图

    这篇文章主要介绍了Android开发学习路线图,本文从基础、入门、进阶、高级等4个方面铺开学习路线图,需要的朋友可以参考下
    2015-04-04
  • 详谈android 6.0 fuse文件系统的挂载和卸载问题

    详谈android 6.0 fuse文件系统的挂载和卸载问题

    今天小编就为大家分享一篇详谈android 6.0 fuse文件系统的挂载和卸载问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android数据持久化之读写SD卡中内容的方法详解

    Android数据持久化之读写SD卡中内容的方法详解

    这篇文章主要介绍了Android数据持久化之读写SD卡中内容的方法,结合具体实例形式分析了Android持久化操作中针对SD卡进行读写操作的相关实现技巧与注意事项,需要的朋友可以参考下
    2017-05-05
  • Android 启动模式详细介绍

    Android 启动模式详细介绍

    这篇文章主要介绍了Android 启动模式详细介绍的相关资料,Activity一共有以下四种launchMode启动模式,这里一一做详解,需要的朋友可以参考下
    2016-12-12
  • Android Shader着色器/渲染器的用法解析

    Android Shader着色器/渲染器的用法解析

    这篇文章主要介绍了Android Shader着色器/渲染器的用法解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论