歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之Json數據解析

Android之Json數據解析

日期:2017/3/1 10:28:02   编辑:Linux編程

首先是介紹:

一、什麼是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數據解析源碼下載地址

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/2月/29日/Android之Json數據解析/

二、json數據跟xml的比較

1、json和xml的數據可讀性基本相同;
2、json和xml同樣擁有豐富的解析手段;
3、json相對於xml來講,數據體積小;
4、json與javascrpit的交互更加方便;
5、json對數據的描述性相對較差;

三、android中的3種解析方式的代碼如下:

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

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. }
Copyright © Linux教程網 All Rights Reserved