android_json教程

本篇文檔(已撰寫)

android_json文檔下載

JSON簡介

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於JavaScript的一個子集。
JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript,
Perl, Python等)。這些特性使JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成,json生成的數據量比XML 還要少一些,所以很多公司傳輸數據喜歡用JSON數據格式 。

JSON語法規則

JSON 語法是 JavaScript 對象表示語法的子集。
• 數據在鍵值對中
• 數據由逗號分隔
• 花括號保存對象
• 方括號保存數組

JSON 名稱/值對

JSON 數據的書寫格式是:名稱/值對。
名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面(同樣在雙引號中),中間用冒號隔開:
1 "firstName":"John"
這很容易理解,等價於這條 JavaScript 語句:
1 firstName="John"

JSON值

JSON 值可以是:
• 數字(整數或浮點數)
• 字符串(在雙引號中)
• 邏輯值(true 或 false)
• 數組(在方括號中)
• 對象(在花括號中)
• null

JSON結構

對象結構
數組結構
對象和數組結合的複雜數據結構

json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組兩種結構,通過這兩種結構可以表示各種複雜的結構。

1、 對象:對象在js中表示爲“{}”括起來的內容,
a) 數據結構爲 {key:value,key:value,...}的鍵值對的結構,
b) 在面向對象的語言中,key爲對象的屬性,value爲對應的屬性值,所以很容易理解,取值方法爲 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。

2、 數組:數組在js中是中括號“[]”括起來的內容,
a) 數據結構爲 ["java","javascript","vb",...],
b) 取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。
經過對象、數組2種結構就可以組合成複雜的數據結構了。

JSON兩種結構組合示例

觀看技巧:從最外層,然後再外裏層,逐層看

{
    "authors": [
        {
            "firstName": "Isaac",
            "genre": "sciencefiction",
            "lastName": "Asimov"
        },
        {
            "firstName": "Tad",
            "genre": "fantasy",
            "lastName": "Williams"
        },
        {
            "firstName": "Frank",
            "genre": "christianfiction",
            "lastName": "Peretti"
        }
    ],
    "musicians": [
        {
            "firstName": "Eric",
            "instrument": "guitar",
            "lastName": "Clapton"
        },
        {
            "firstName": "Sergei",
            "instrument": "piano",
            "lastName": "Rachmaninoff"
        }
    ],
    "programmers": [
        {
            "email": "aaaa",
            "firstName": "Brett",
            "lastName": "McLaughlin"
        },
        {
            "email": "bbbb",
            "firstName": "Jason",
            "lastName": "Hunter"
        },
        {
            "email": "cccc",
            "firstName": "Elliotte",
            "lastName": "Harold"
        }
    ]
}


JSON的生成和解析

1、 下面通過一個簡單的例子來說明JSON 的解析

try {

   JSONObject mBj=new JSONObject();

  JSONArray mJsonArray=new JSONArray();

  mBj.put("students", mJsonArray);//存入主對象

  JSONObject mJSONObject1=new JSONObject();

  mJSONObject1.put("name", "luci");

  mJSONObject1.put("age", 23);

  mJsonArray.put(mJSONObject1);//存入數組對象

  Log.d("log.d", mBj.toString());

} catch (JSONException e) {

  e.printStackTrace();

}
2、json數據生成
try {

  JSONObject mBj=new JSONObject();

  JSONArray mJsonArray=new JSONArray();

  mBj.put("students", mJsonArray);//存入主對象

  JSONObject mJSONObject1=new JSONObject();

  mJSONObject1.put("name", "luci");

   mJSONObject1.put("age", 23);

   mJsonArray.put(mJSONObject1);//存入數組對象

   Log.d("log.d", mBj.toString());

} catch (JSONException e) {

   e.printStackTrace();

}
3.生成的數據

參考資料如下:

josn簡介(百度百科)

josn解析和生成百度經驗




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章