Android中使用Gson解析JSON数据

原创 2011年10月14日 08:46:35

在Android中可以使用Gson解析JSON数据

首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI:

google-gson-1.7.1-release.zip

把gson-1.7.jar copy到libs(项目根目录新建一个libs文件夹)中。

可以使用以下两种方法解析JSON数据:

通过获取JsonReader对象解析JSON数据:

String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
try{
	JsonReader reader = new JsonReader(new StringReader(jsonData));
	reader.beginArray();
	while(reader.hasNext()){
		reader.beginObject();
		while(reader.hasNext()){
			String tagName = reader.nextName();
			if(tagName.equals("username")){
				System.out.println(reader.nextString());
			}
			else if(tagName.equals("userId")){
				System.out.println(reader.nextString());
			}
		}
		reader.endObject();
	}
	reader.endArray();
}
catch(Exception e){
	e.printStackTrace();
}

通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作:

创建JSON数据对应的一个POJO对象User.java:

public class User {
	private String username ;
	private int userId ;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
}

使用Gson对象获取User对象数据进行相应的操作:

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(user.getUsername());
	System.out.println(user.getUserId());
}

如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println(user.getUsername());
System.out.println(user.getUserId());


Android中的数据存储

剔除繁杂的理论,注重实践,深入浅出讲解Android中的数据存储
  • 2017年03月03日 15:15

Android之使用GSON解析JSON数据

GSON简介:GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。GSON可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的J...
  • ygd1994
  • ygd1994
  • 2016-05-08 18:49:30
  • 2326

Android基础之使用Gson解析json数据 第一弹

Android基础之使用Gson解析json数据 第一弹首先介绍一下JSON数据的格式 JSON数据 JSON对象 实体类对象 {……..} JSONObject Map [...
  • h8800830
  • h8800830
  • 2016-10-27 00:02:57
  • 1202

Android学习 (十八) 用GSON解析JSON数据并在ListView中显示

这几天一直在学习用GSON解析JSON并通过自定义的Adapter显示在ListView上面,现在来做一些记录。 在Android项目中添加GSON的步骤在上一篇博客提到过。这是一个实现目标的大体思...
  • myGFZ
  • myGFZ
  • 2016-11-23 16:33:15
  • 1923

Android:使用Gson解析复杂的JSON数据

本文主要讲解android如何解析复杂格式的JSON数据,适合android初学者和初步接触JSON的人。...
  • u012028501
  • u012028501
  • 2016-04-23 13:00:43
  • 7699

Gson的使用——Gson解析json数组并展示在ListView控件上

类似于解析json数据的框架有很多,常用的就是Gson,使用起来特别的方便,同时,还拥有很好的可操作性,今天就来说说怎么用Gson去解析一个json数组。首先看看数据源{ "a": [ ...
  • qq_25193681
  • qq_25193681
  • 2016-07-09 10:32:51
  • 3920

Android通过gson自动解析服务器返回的json数据

  • 2015年04月22日 16:59
  • 1.93MB
  • 下载

android关于Gson解析json数据时,如果属性为null会报空指针的问题

一、问题: ①、包含有null的json数据: {"memberId":"33","memberName":null,"memberPosition":"父亲"} ②、其中json数据中有...
  • weixin_40797204
  • weixin_40797204
  • 2018-01-05 11:19:38
  • 243

Android Studio下使用Google Gson解析Json数据示例

  • 2015年07月12日 17:42
  • 5.73MB
  • 下载

使用HttpURLConnection请求Gson网络解析数据

解析 JSON 数据 使用官方提供的 JSONObject,也可以使用谷歌的开源库 GSON.package com.gaoo.httpclientdemo;import android.os.Bun...
  • blueshell001
  • blueshell001
  • 2016-07-07 17:53:26
  • 1604
收藏助手
不良信息举报
您举报文章:Android中使用Gson解析JSON数据
举报原因:
原因补充:

(最多只允许输入30个字)