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中listview和imageview实现条目单选效果

    Android中listview和imageview实现条目单选效果

    这篇文章主要为大家详细介绍了Android中listview和imageview实现条目单选效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android自定义View实现闪耀字体效果

    Android自定义View实现闪耀字体效果

    这篇文章主要为大家详细介绍了Android自定义View实现闪耀字体效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android 自定义View实现任意布局的RadioGroup效果

    Android 自定义View实现任意布局的RadioGroup效果

    这篇文章主要介绍了Android 自定义View实现任意布局的RadioGroup,需要的朋友可以参考下
    2018-11-11
  • Android中使用GridView进行应用程序UI布局的教程

    Android中使用GridView进行应用程序UI布局的教程

    GridView即平常我们见到的类似九宫格的矩阵型布局,只不过默认不带分割线,这里我们就从基础开始来看一下Android中使用GridView进行应用程序UI布局的教程
    2016-06-06
  • Android截屏截图的几种方法总结

    Android截屏截图的几种方法总结

    这篇文章主要介绍了 Android截屏截图方法汇总(Activity、View、ScrollView、ListView、RecycleView、WebView截屏截图)的相关资料,需要的朋友可以参考下
    2017-05-05
  • Android RecyclerView使用方法解析

    Android RecyclerView使用方法解析

    这篇文章主要为大家详细解析了Android RecyclerView使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android点击事件之多点触摸与手势识别的实现

    Android点击事件之多点触摸与手势识别的实现

    这篇文章主要介绍了Android点击事件之多点触摸与手势识别的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • flutter轮子计划之进度条

    flutter轮子计划之进度条

    这篇文章主要为大家详细介绍了flutter轮子计划之进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Android更改EditText下划线颜色样式的方法

    Android更改EditText下划线颜色样式的方法

    Android 里 EditText下划线有默认的颜色样式,如何修改其颜色,而且想单独定义某一个界面的颜色样式呢。下面这篇文章主要介绍了Android更改EditText下划线颜色样式的方法,需要的朋友可以参考下
    2017-01-01
  • Android实现后台服务拍照功能

    Android实现后台服务拍照功能

    这篇文章主要为大家详细介绍了Android实现后台服务拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05

最新评论