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

  • 2016年03月11日 14:08
  • 290KB
  • 下载

Android连接服务器数据库查询+Gson解析(List和Map)格式json数据(二)

1、Android主要代码 package com.pdsu.libsys; import java.lang.reflect.Field; import java.lang.reflect.Ty...

Android端解析web端传来的json数据

  • 2015年09月09日 20:43
  • 3.26MB
  • 下载

Android学习笔记(一)之解析本地json数据

private void readFromAssets() { try { InputStream is = getAssets().open("allChin...

android 解析json数据

  • 2012年07月23日 16:19
  • 154KB
  • 下载

Android 解析后台返回为Json数据的简单例子!!!

大家好,今天给大家分享下Android解析Json的例子,我这里自己安装了Tomcat,让自己电脑充当下服务器,最重要的是,返回结果自己可以随便修改。 首先看下Json的定义,以及它和XML的比...

Android中Json数据解析

  • 2014年07月29日 09:56
  • 6.45MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android JSON数据解析
举报原因:
原因补充:

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