1. 程式人生 > >JSONObject和JSONArray總結,個人理解

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);