JSON及其在項目中的使用

JSON

一、簡介

  • 全稱:JavaScript Ojbect Notation,JavaScript對象標記

  • 功能:輕量級數據交換語言

  • 語法嚴格

  • 兩種建立JS對象的方式

    //方式一:通過function
    function Person(xid,xname,xsal){
    this.id=xid;
    this.name=name;
    this.sal=xsal;
    }
    var p = new person(1,"張三",9500);
    //方式二:通過字面量,後面那一串字符串就是所謂的json
    var p={id:1,name:"張三",sal=9500};

二、語法

  • {} 對象
  • [] 數組
  • , 分隔屬性
  • : 左邊爲屬性名,右邊爲屬性值
    屬性名可用可不用引號括起,屬性值爲字符串一定要用引號括起

三、結構

JSON建構於兩種結構:

  • “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解爲對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分語言中,它被理解爲數組(array)。

四、使用

1. 說明

需要json-lib-2.1-jdk15.jar,但是Android SDK中內置了JSON解析器(不同於這個jar包,Android中的比較精簡),所以不用導入。

2. Java項目中使用

需要導入以下jar包

這裏寫圖片描述

//將整個對象轉爲json數組
JSONArry ja = JSONArray.fromObject(Object);
//只將對象中的某些屬性轉成JSON對象
jsonConfig.setExcludes(String[] );//不參與轉成JSON文本屬性
JSONObject ja = JSONObject.fromObject(Object,jsonConfig);

3. Android項目中使用

3.1 JSONObject

  1. 本質:是一個LinkedHashMap<String, Object>

  2. 構造方法

    /**
    * 功能:構造方法,從json字符串中創建鍵值映射(JSON對象)
    * 參數json:json字符串
    * 返回值:JSONObject
    */
    public JSONObject(String json) throws JSONException {
    this(new JSONTokener(json));
    }
  3. 獲取和設置方法

    //返回對應name的值,如果沒有就返回null
    Object opt(String name)
    //更精準的獲取方法
    JSONObject optJSONObject(String name)
    JSONArray optJSONArray(String name)
    ...
    //返回對應name的值,如果沒有就拋出異常
    Object get(String name)
    //更精準的獲取方法
    getJSONObject(String name)
    getJSONArray(String name)
    ...
    //構建name和value的映射,如果已存在就覆蓋,如果value爲null就移除
    JSONObject put(String name, Object value)

3.2 JSONArray

  1. 本質:是一個ArrayList<Object>

  2. 構造方法

    /**
    * 功能:構造方法,從json字符串中創建json數組
    * 參數json:json字符串
    * 返回值:JSONOArray
    */
    public JSONArray(String json) throws JSONException {
    this(new JSONTokener(json));
    }
  3. 獲取和設置方法

    //返回對應index的值,如果沒有就返回null
    Object opt(int index)
    //更精準的獲取方法
    JSONArray optJSONArray(int index)
    JSONObject optJSONObject(int index)
    ...
    //返回對應index的值,如果沒有就拋出異常
    Object get(int index)
    //更精準的獲取方法
    getJSONObject(int index)
    getJSONArray(int index)
    ...
    //往指定索引添加值,如果已存在就覆蓋
    JSONArray put(int index, Object value)

五、XML與JSON

  • XML:常用於配置文件,結構清晰,易讀
  • JSON:常用於傳輸數據,傳輸量小
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章