Android之Json数据解析

首先是介绍:

一、什么是json数据

1、json:javascript object Notation的简称
2、json数据是一系列键值对的集合;
3、json已经被大多数开发人员,在网络数据的传输当中应用非常广泛;
4、json相对于xml来讲解析稍微方便一些
5、它的基本数据格式是:

{
"name":"Michael",
"andress":
{
"city":"Beijing",
"Street":"Chaoyang Road",
"prostcode":100024
}
}

Android之Json数据解析源码下载地址

具体下载目录在 /2012年资料/2月/29日/Android之Json数据解析/

二、json数据跟xml的比较

1、json和xml的数据可读性基本相同;
2、json和xml同样拥有丰富的解析手段;
3、json相对于xml来讲,数据体积小;
4、json与javascrpit的交互更加方便;
5、json对数据的描述性相对较差;

三、android中的3种解析方式的代码如下:

首先要把jar包拷到项目中:

Android之Json数据解析 Android之Json数据解析  http://code.google.com/p/google-gson/ 

第一种方式解析:private String jsonData1="[{\"name\":\"renhaili\",\"age\":20},{\"name\":\"zhouxiaodong\",\"age\":21}]";这种数据的解析方式:

  1. public void parseJson(String jsonData) {  
  2.         // 如果需要从解析json数据,首先要生成一个jsonReader对象   
  3.         JsonReader reader = new JsonReader(new StringReader(jsonData));  
  4.         try {  
  5.             // 现在开始解析   
  6.             reader.beginArray();// 开始解析数组   
  7.             while (reader.hasNext()) {  
  8.                 reader.beginObject();// 开始解析对象   
  9.                 while (reader.hasNext()) {  
  10.                     String tagName = reader.nextName();  
  11.                     if (tagName.equals("name")) {  
  12.                         System.out.println(reader.nextString());  
  13.                     } else if (tagName.equals("age")) {  
  14.                         System.out.println(reader.nextInt());  
  15.                     }  
  16.                 }  
  17.                 reader.endObject();// 结束对象解析   
  18.             }  
  19.             reader.endArray();// 结束数组解析   
  20.         } catch (IOException e) {  
  21.             e.printStackTrace();  
  22.         }  
  23.     }