android JSON数据解析

原创 2013年12月04日 09:49:02

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 实现Json数据解析,并进行应用!

从网站上获取数据然后再客户端进行解析是常见的数据交互。下面是常用的一些接口网址: webservice工厂接口 http://www.36wu.com快递查询接口http://webservice.3...
  • Marksinoberg
  • Marksinoberg
  • 2015年11月17日 19:45
  • 10202

Android Json数据解析

1.通过主Activity的Button按钮进行解析 1 public class MainActivity extends Activity { 2 3 private B...
  • chaishen10000
  • chaishen10000
  • 2014年06月30日 17:14
  • 544

Android JSON数据解析

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式。   本文将主要介绍在An...
  • typedef_god
  • typedef_god
  • 2013年12月24日 18:32
  • 612

Android json数据解析

前言 喜欢在前言里讲一下自己的现状,或许能有共鸣的同学,更多的是留给自己一个纪念,几个月或者几年再回来看的时候还是会很有感慨。今天说说语言,json这种数据格式之前我做服务器端的时候天天接触,天真的以...
  • zinss26914
  • zinss26914
  • 2014年03月05日 10:24
  • 1467

android Json数据解析

json数据格式解析我自己分为两种; 一种是普通的,一种是带有数组形式的;  普通形式的: 服务器端返回的json数据格式如下: {"userbean":{"Uid":"10019...
  • heng615975867
  • heng615975867
  • 2013年11月06日 14:56
  • 747

android json数据解析

此demo实现了json数据的解析,有三种解析方式。 demo:下载地址,gson.jar在libs文件夹中,注意添加。 MainActivity.java: package fk.an...
  • youmingyu
  • youmingyu
  • 2016年10月06日 10:46
  • 158

JSON数据解析

这一篇简单介绍一下Json数据解析。JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与客户端的交互,Json语法参考。关于在iOS平台...
  • qq348931837
  • qq348931837
  • 2013年08月25日 02:26
  • 581

android JSON解析数据-解析天气预报

概要笔者近期做到对天气预报JSON数据解析,在此小记。 天气预报接口:http://wthrcdn.etouch.cn/weather_mini?citykey=101200101 JSON数据如...
  • Double2hao
  • Double2hao
  • 2017年03月30日 09:04
  • 1619

Android的JSON数据解析

json(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据...
  • linzhuowei0775
  • linzhuowei0775
  • 2015年08月30日 08:47
  • 204

android基础 - JSON数据解析

什么是JSON: JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案. JSON对...
  • gg137608987
  • gg137608987
  • 2013年06月27日 11:27
  • 834
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android JSON数据解析
举报原因:
原因补充:

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