Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中JSON數據使用

Android中JSON數據使用

編輯:關於Android編程

JSON(JavaScript Object Notation) :一種輕量級的數據交換格式,基於JavaScript的一個子集。 JSON采用完全獨立於語言的文本格式,使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(網絡傳輸速度快)。作為一種數據交換格式,JSON優勢很明顯(相對與我們通常使用的XML):JSON比XML體積小;JSON和JavaScript交互更加方便;JSON的速度要遠遠大於XML;JSON的解析要比XML的解析要方便等。

JSON語法規則:

 

  • 數據在名稱/值(鍵值)對中
  • 數據由逗號(,)分隔
  • 花括號{}保存對象
  • 方(中)括號[]保存數組 JSON 數據的書寫格式是:名稱/值對。名稱主要是用加“”的字符串表示,值可以是多種格式,包括
  • 數字(整數或浮點數)
  • 字符串(在雙引號()中)
  • 邏輯值(true 或 false)
  • 數組(在方括號中)
  • 對象(在花括號中)
  • null 下面是一個JSON格式的數示例:

     

    {
    tel : [12345678, 87654321], // 數組形式,以方括號保存
    name : tianjiefeng, // 字符串
    age : 20, // 數值
    address : { country : china, province : guangdong }, // JSON對象,以花括號保存
    graduate : true // 布爾值
    }

    那個Android開發中JSON格式的數據如何創建?又如何解析呢?首先舉如何創建下面這個JSON的例子:

    private JSONObject createJSONData() {
    // 最外層是花括號{},所以就是一個JSONObject對象
    JSONObject student = new JSONObject();
    try {
    // 第1個value是[ ],也就是一個JSONArray對象
    JSONArray tel= new JSONArray();
    phone.put(12345678);
    phone.put(87654321);
    person.put(tel, tel);
    // 第2個value一個字符串
    person.put(name, tianjiefeng);
    // 第3個value一個字符串數值
    person.put(age, 20);
    // 第4個value一個JSONObject對象
    JSONObject address = new JSONObject();
    address.put(country, china);
    address.put(province, guangdong);
    person.put(address, address);
    // 第5個value一個布爾值
    person.put(graduate, true);
    } catch (JSONException e) {
    e.printStackTrace();
    }
    return student ;
    }

    如果要返回String字符串,只需要修改為return student.toString();下面看下如何把上面的JSON數據解析出來:

    private Map parseJSONData(String json) {
    Map resultMap = new HashMap();
    try {
    // 直接把JSON字符串轉化為一個JSONObject對象
    JSONObject student= new JSONObject(json);
    // 第1個鍵值對
    resultMap.put(tel, person.getJSONArray(tel).toString());
    // 第2個鍵值對
    resultMap.put(name, person.getString(name));
    // 第3個鍵值對
    resultMap.put(age, person.getInt(age));
    // 第4個鍵值對
    resultMap.put(address, person.getJSONObject(address).toString());
    // 第5個鍵值對
    resultMap.put(graduate, person.getBoolean(married));
    } catch (JSONException e) {
    e.printStackTrace();
    }
    return resultMap;
    }
    } 上面就是用我們用JSONObject 及JSONArray進行數據操作。但在實際開發中,我們一般都會使用Gson解析JSON數據
    首先,從 code.google.com/p/google-gson/downloads/list下載GsonAPI和相關jar包,然後通過GJSON封裝的方法來處理數據。 Gson的解析非常簡單,但是它的解析規則是必須有一個bean文件,這個bean文件的內容跟JSon數據類型是一一對應。Gson有兩個重要的方法,一個就是tojson(tojson就是將bean裡面的內容轉換為json內容),一個就是fromjson(從我們的Json對象封裝出一個一個的bean對象)。

     

     

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved