文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android解析JSON数据的方法分析

2022-06-06 08:17

关注

本文实例讲述了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编程简单解析JSON格式数据的方法示例Android使用OKHTTP解析JSON数据的实例代码android JSON解析数据 android解析天气预报Android 中对JSON数据解析实例代码Android解析json数据示例代码(三种方式)Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法Android之解析JSON数据示例(android原生态,FastJson,Gson)Android json数据解析详解及实例代码Android系列---JSON数据解析的实例Android利用Gson解析嵌套多层的Json的简单方法Android M(6.x)使用OkHttp包解析和发送JSON请求的教程Android json解析及简单例子android解析JSON数据Android中gson、jsonobject解析JSON的方法详解Android解析json数组对象的方法及Apply和数组的三个技巧Android随手笔记44之JSON数据解析Android学习笔记45之gson解析jsonandroid原生JSON解析实例


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯