JSONObject和JSONArray總結,個人理解
本人Android新手,如有缺漏,請高手們指導指導
1.JSON簡介
JSON指的是JavaScript物件表示法(JavaScript Object Notation),它是一種輕量級的文字交換格式,支援多種服務端語言,易於解析和生成;JSON是基於JavaScript的一個子集,但是JSON仍然獨立於語言和平臺;JSON常用於客戶端和服務端資料互動
2.JSON打包
Android提供的JSON解析類都在包org.json下,主要JSONObject,JSONArray,JSONStringer,JSONException,JSONTokener等幾個;客戶端可將資料打包成JSON格式後傳送給服務端
3.符號
JSONObject 是一個由{ }包裹起來的物件,有鍵名
JSONArray 是一個由[ ]包裹起來的陣列,沒有鍵名
4.示例
JSONObject :{"name":lala, "age":60}
JSONArray:["14", "2", "89"]
5.JSONObject
獲取值的內容
String name = jsonObject.getString("name");建立JSONObject
org.json.JSONObject object = new org.json.JSONObject(); try { object.put("name", "Popo"); object.put("age", 40); } catch (JSONException e) { e.printStackTrace(); }
6.JSONArray
String jsonString = "{"code":[{"name":"java"}, {"name":"c"}]}";
獲取name的值
try{ org.json.JSONObject jsonObject1 = new org.json.JSONObject(jsonString); org.json.JSONArray list = jsonObject1.getJSONArray("code");for (int i = 0; i < list.length(); i++) { Log.i("********", list.getJSONObject(i).getString("name")); } } catch (JSONException e) { e.printStackTrace(); }
7.Gson
Gson是Google提供用來在Java物件和JSON 資料之間進行對映的Java類庫。可以將一個JSON字串轉成一個 Java物件,或者反過來。(JSON的鍵值name = Java物件的屬性name,相等且一一對應,此為必須條件)
JSON字串
String jsonString = "[{"name":"lala", "age":"60"}]";
Java物件public class JsonBean implements Serializable {private String name; private String age;public String getName() { return name; }public void setName(String name) { this.name = name; }public String getAge() { return age; }public void setAge(String age) { this.age = age; } }
Java物件轉為JSON字串
String jsonString = new Gson().toJson(jsonBean);
JSON字串轉為Java物件
JsonBean jsonBean = new Gson().fromJson(jsonString, JsonBean.class);
JSON字串轉為Java物件的集合
下面程式碼使用了TypeToken,這是Gson提供的資料型別轉換器,可支援各種資料集合型別轉換
List<JsonBean> list = new Gson().fromJson(jsonString, new TypeToken<List<JsonBean>>(){}.getType());
8.其他包
導包網址:http://mvnrepository.com/ (複製gradle下的程式碼,到Module app的build.gradle下)
JSON-Lib (net.sf.json)
將JSON 字串轉換為JSONObject物件
JSONObject jsonObject = JSONObject.fromObject(jsonString);
將JSON 字串轉換為JSONArray物件
JSONArray jsonArray = JSONArray.fromObject(jsonString);