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程序设计有所帮助。

(0)

相关推荐

  • Android json解析及简单例子

    一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便 5.JSON对数

  • Android中关于JSON相关应用分析

    本文分析了Android中关于JSON相关应用.分享给大家供大家参考,具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON的结构: Name/Value Pairs,类似所熟知的Keyed list. Hash table.Discti

  • Android网络编程之获取网络上的Json数据实例

    为要获取网络上的Json所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean 复制代码 代码如下: package com.jph.sj.model;   import java.util.Date;   /**  * 新闻实体类  * @author jph  * Date:2014.09.26  */ public class News {     private Integer id;     private S

  • Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.分享给大家供大家参考,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Java类,将json上传数据的方法封装好,可以直接在主程序中调用该类,代码如下 public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String j

  • android客户端从服务器端获取json数据并解析的实现代码

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码 代码如下: /**      * 从指定的URL中获取数组      * @param urlPath      * @return      * @throws Exception      */     public static String readParse(String urlPath) throws Exception {                  ByteArrayOutputSt

  • android+json+php+mysql实现用户反馈功能方法解析

    相信每个项目都会有用户反馈建议等功能,这个实现的方法很多,下面是我实现的方法,供大家交流.首先看具体界面,三个字段.名字,邮箱为选填,可以为空,建议不能为空.如有需要可以给我留言.  下面贴出布局代码,这里用到一个<include layout="@layout/uphead">就是把另外一个布局文件引入到这个布局中. 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> &l

  • Android中的JSON详细总结

    1.JSON(JavaScript ObjectNotation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org 2.JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Hash table.Disctio

  • Android读取本地json文件的方法(解决显示乱码问题)

    本文实例讲述了Android读取本地json文件的方法.分享给大家供大家参考,具体如下: 1.读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context, String fileName){ String jsonString=""; String resultString=""; try { BufferedReader bufferedReader=new BufferedReade

  • Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海". 第三种类型是映射(mapping),也就是一个名/值对(

  • Android解析JSON数据的方法分析

    本文实例讲述了Android解析JSON数据的方法.分享给大家供大家参考,具体如下: JSON作为一种"轻量"的数据结构传递数据,在JS中有广泛的应用 Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包:自从Android3.0中已经合入了该解析器的功能,但之前的版本是没有的. findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){ @Override public

  • springboot实现FastJson解析json数据的方法

    最近在研究springboot实现FastJson解析json数据的方法,那么今天也算个学习笔记吧! 添加jar包: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> 两种方式启动加载类: 第一种继承WebMvcConfigur

  • 实例详解esp8266解析json数据的方法

    #include <ArduinoJson.h> void setup() { Serial.begin(115200); Serial.println("这里用于测试json数据的解析"); // DynamicJsonDocument对象 定义时候我们需要定义一个大小信息+复制大小 const size_t capacity = JSON_OBJECT_SIZE(2) + 30; DynamicJsonDocument doc(capacity); // 要解析的jso

  • Spring Boot使用FastJson解析JSON数据的方法

    个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析呢? 1.引入fastjson依赖库: <!--添加fastjson解析JSON数据--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <versio

  • 利用Golang解析json数据的方法示例

    本文主要给大家介绍的是关于Golang解析json数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 使用 Golang 解析 json 数据,这种 json 格式是对象的数组,官方文档有一个示例: var jsonBlob = []byte(`[ {"Name": "Platypus", "Order": "Monotremata"}, {"Name": "Quoll

  • Python使用JSON库解析JSON数据的方法

    目录 1 如何在网页中获取 JSON 数据? 2 Python 内置的 JSON 库 1 如何在网页中获取 JSON 数据? 打开一个具有动态渲染的网页,按 F12 打开浏览器开发工具,点击“网络”,再刷新一下网页,观察是否有新的数据包. 发现有 js 后缀的文件,这就是我们想要的 json 数据了. 2 Python 内置的 JSON 库 内置的 json 库的函数: dumps:用于将 Python 的数据类型转化为 json 字符串. loads:将 json 字符串转化为 Python

  • Android解析json数据示例代码(三种方式)

    Json数据 复制代码 代码如下: [{"code":"110000","sheng":"11","di":"00","xian":"00","name":"北京市","level":1},{"code":"659004","sheng&q

  • android 解析json数据格式的方法

    json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: 复制代码 代码如下: {"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}} 分析代码如下: 复制代码 代

  • JS中Json数据的处理和解析JSON数据的方法详解

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). JSON的规则很简单: 对象是一个无序的"'名称/值'对"集合.一个对象以&quo

  • android解析JSON数据

    JSONObject的使用 一. JSON对象的使用: String content = "{'username': 'linux', 'password': '123456'}"; JSONObject jsonObject = new JSONObject(content); String username = jsonObject.getString("username"); String password = jsonObject.getString(&qu

随机推荐