发布于 2017-03-23 00:35:52 | 182 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Android移动端操作系统

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。


这篇文章主要介绍了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程序设计有所帮助。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务