Android中JSON資料使用

來源:互聯網
上載者:User

標籤:android應用   json   gson   

     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<String, Object> parseJSONData(String json) {  
        Map<String, Object> resultMap = new HashMap<String, Object>();  
        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對象)。其簡單的例子可以參考:http://blog.csdn.net/kongzhichen/article/details/10135051 



Android中JSON資料使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.