日期:2014-05-16  浏览次数:20390 次

Android开发--Json数据的解析

在执行解析数据之前,需要将一个类库应用到你的程序中,下载的地址是:

http://code.google.com/p/google-gson/ 

下载解压之后你需要将蓝色标记的文件放入到你的程序之中应用

首先,我们需要知道什么是Json数据:

JSON的定义:
       一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决
方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org

说到这里,可能会发现Json数据与XML文件很相似,下面,我们看下它们之间的对比:

1.JSON和XML的数据可读性基本相同
2.JSON和XML同样拥有丰富的解析手段
3.JSON相对于XML来讲,数据的体积小
4.JSON与JavaScript的交互更加方便
5.JSON对数据的描述性比XML较差
6.JSON的速度要远远快于XML


下面,我们看下Android官方文档给出的一个Json的例子:

[
   {
     "id": 912345678901,
     "text": "How do I read JSON on Android?",
     "geo": null,
     "user": {
       "name": "android_newb",
       "followers_count": 41
      
   },
   {
     "id": 912345678902,
     "text": "@android_newb just use 

android.util.JsonReader!",
     "geo": [50.454722, -104.606667],
     "user": {
       "name": "jesse",
       "followers_count": 2
     }
   }
 ]}

这是一个Json数组,里面有两个对象,我们需要对其进行解析,下面的链接是官方文档对其解析的例子:

点击打开链接

下面,以一个具体的例子对其进行说明:

在这个例子中介绍三种解析Json的方法,其中第二和第三类是利用类对象和Json数据的互相转换完成的解析。

下面是实现的截图:


第一个按钮的作用是利用Google提供的Api解析Json数据,这里给出的是一个数组,具体的实现代码如下:

public class JsonUtils {
	public void parseJson(String jsonData) {
		try {
			//创建JsonReader 对象
		JsonReader reader = new JsonReader(new StringReader(jsonData));
		//开始解析数组
		reader.beginArray();
		//循环判断有没有下一个Json对象
        while(reader.hasNext()){
		//开始解析Json对象
        reader.beginObject();
		//循环判断Json对象里面有没有下一个键值对
		while(reader.hasNext()){
		String tagName = reader.nextName();
		if(tagName.equals("name")){
		//n