標籤: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資料使用