Android中使用Gson解析JSON数据

转载 2013年12月02日 10:50:45

在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());
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/android-to-parse-json-data-using-gson.html
关键字

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

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

Andorid之Gson解析Json数据

Json类型数据可以通过Json官方提供的方法将Json字符串转化为对象类型,但是解析往往比较麻烦, Gson是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java ...
  • zml_2015
  • zml_2015
  • 2016年02月03日 14:51
  • 2957

Android Studio配置与使用GSON框架解析json数据

Android Studio配置与使用Gson框架解析json数据[toc] 这里使用一个联动的spinner来演示何如使用Gson解析json数据一、配置gson环境单击Open Module S...
  • qq_32583189
  • qq_32583189
  • 2016年05月17日 23:11
  • 8353

android_使用Gson解析json数据

record
  • yan309271291
  • yan309271291
  • 2015年06月04日 13:10
  • 1130

Gson解析嵌套JSON格式数据

来源说明:最近在无聊,刚刚又想学一下安卓的APP, 刚刚好看到"中国天气网"那里面的有免费的API.刚刚好又想到用GSON解析,我学了一下. 1.数据格式{ "user":"zhangsan"...
  • u013792369
  • u013792369
  • 2015年12月15日 12:29
  • 847

使用Gson结合泛型类灵活解析JSON数据

一般比较规范的后端JSON返回数据,会遵循一些指定的JSON格式,比如: 错误: { "status": -1, "data": null, "err": "not_fou...
  • yuanguozhengjust
  • yuanguozhengjust
  • 2016年01月07日 16:41
  • 10085

【android】利用volley+Gson POST json请求来接收jsonObject并解析json数据

这里安利一个介绍volley几种常用方法的blog:http://blog.csdn.net/fenghai22/article/details/44061307 进入正题,当request head...
  • qiudeli18
  • qiudeli18
  • 2016年05月02日 21:26
  • 1209

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

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

GSON解析json数据详解

GSON JSON 介绍 Gson 下载 Gson 解析 和 格式化 Gson 格式化 Gson 解析 Json 介绍 Json 全称 JavaS...
  • DQ1005
  • DQ1005
  • 2016年06月13日 16:13
  • 12703

gson泛型 解决所有数据解析问题

解析 json一直用gson 突然出现了这个问题 类是这样的 很简单 但每个类都没有关联性  这样写代码太垃圾了。。复用性在哪里。。 所以打算用一个通用的方法 ,网上查 自己写 出现啦这三种方...
  • wanghao200906
  • wanghao200906
  • 2014年12月15日 16:10
  • 3187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中使用Gson解析JSON数据
举报原因:
原因补充:

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