json是一种网络传输中常用的数据格式,它体积小,便于网络传输,节省流量,但相比于xml,它的语义性较差,看起来不如xml直观,下面将介绍 json数据的解析方法。

下面给出需要解析的json数据。

[{"id":"1","name":"Google","version":"1.0"},{"id":"2","name":"Android","version":"2.0"},{"id":"3","name":"Play","version":"3.0"}]
一、使用JSONObject解析数据

首先,这里先补充一点json数据格式的知识点。在json数据格式中,每一个{}之间的内容就是一个对象,每一个[]之间的内容是一个数组,上面各处的json数据就是一个数组,其中包含三个json对象,构成了一个json字符串。下面给出解析上面json字符串的代码。

我们只需要将json字符串转化为JSON数组对象,然后再从中取出一个个的JSON对象,再从对象中读取出包含的值即可。

/** * 用JSONObject解析json数据 * @param jsonData */private void parseJsonWithJSONObject(String jsonData){    try {        //将json字符串转化为JSONArray对象        JSONArray jsonArray = new JSONArray(jsonData);        for (int i = 0; i < jsonArray.length(); i++) {            //获得json数组中的每一个json对象            JSONObject jsonObject = jsonArray.getJSONObject(i);            //从json对象中取出相对应的值            String id = jsonObject.getString("id");            String name = jsonObject.getString("name");            String version = jsonObject.getString("version");            Log.d("JJJJ", "id: " + id);            Log.d("JJJJ", "name: " + name);            Log.d("JJJJ", "version: " + version);        }    } catch (JSONException e) {        e.printStackTrace();    }}
二、使用GSON解析数据

GSON是谷歌提供的json解析的开源框架,但目前还没有被添加到Android官方的API中,我们通过将其添加为库,即可快速简单地解析json数据。


GSON的方便之处在于,它可以将一个json字符串中的对象自动映射处理成一个java中的javabean对象。

下面简单介绍一下在Android中如何快速添加GSON库。

1、在app这个module上面右键,选择Open Module Settings

2、找到模块依赖,并点击添加右侧+号,添加依赖,如下图
Android数据解析-----解析json数据_第1张图片

3、找到添加Library依赖,然后在下面找到GSON库,点击OK即可添加成功。
Android数据解析-----解析json数据_第2张图片

当然我们也可以直接在网上下载到GSON的jar包,然后复制到工程的libs目录下,然后在jar包上右键,选择Add As Library来添加GSON库。

添加好了库,下面开始写相关的解析代码。

首先我们需要创建一个JavaBean,与json字符串中的json对象中的字段一一对应。

public class App {  private String id;  private String name;  private String version;  public String getId() {      return id;  }  public void setId(String id) {      this.id = id;  }  public String getName() {      return name;  }  public void setName(String name) {      this.name = name;  }  public String getVersion() {      return version;  }  public void setVersion(String version) {      this.version = version;  }}

接着利用GSON的实例来解析json数据

a、如果json字符串类似于这样

{"id":"1","name":"Google","version":"1.0"}

我们就可以使用这两行代码即可解析

Gson gson = new Gson();App app = gson.fromJson(jsonData, App.class);

b、如果是最开始给出的那种有json数组的json字符串,我们就需要借助于TypeToken将期望解析的数据类型传入到fromJson()方法中。

/** * 利用GSON库解析json数据 * @param jsonData */private void parseJsonWithGSON(String jsonData){    Gson gson = new Gson();    List appList = gson.fromJson(jsonData, new TypeToken(){}.getType());    for (App app : appList) {        Log.d("NNNN", "id: " + app.getId());        Log.d("NNNN", "name: " + app.getName());        Log.d("NNNN", "version: " + app.getVersion());    }}

以上就是解析json数据常用的两种方式,当然还有许多json解析相关的库也可以帮我们快速解析数据。

更多相关文章

  1. 原创:Android的sqlite数据库需上传服务器,进行更新保存
  2. Android小例子(点击一个按钮,传递数据给另一个页面)
  3. 解决Android横竖屏切换数据丢失问题的方法
  4. Android greenDao数据库的简单使用(一)
  5. Android访问中央气象台的天气预报API得到天气数据 .
  6. Android开发便签6:数据保存之File存储
  7. 8.1、Android中为Intent附加数据的两种写法
  8. Android中数据库操作框架greenDAO介绍与使用
  9. Android系列之Intent传递对象的两种方法

随机推荐

  1. LibGDX输入模块之振荡器
  2. 获取Android崩溃crash信息并写入日志发送
  3. 【React Native开发】React Native For A
  4. Android(安卓)Edittext获取焦点和失去焦
  5. android 5.0 安装APP 出现 Failure [INST
  6. Android/JAVA 针对时间戳转今天昨天前天,
  7. Android中TextSwitcher的功能与用法
  8. Android(安卓)OpenGL ES正方体纹理贴图(
  9. DroidPlugin插件框架 - 《Android必备技
  10. Android(安卓)Studio 添加jar或aar依赖的