json文件格式標準

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易於人閱讀和編寫。同時也易於機器解析和生成。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成爲理想的數據交換語言。

JSON建構於兩種結構:

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

(2)值的有序列表(An ordered list of values)。在大部分語言中,它被理解爲數組(array)。

JSON具有以下這些形式:

1.對象

對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。

2.數組

數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。

值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。

字符串(string)是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。

字符串(string)與C或者Java的字符串非常相似。

1237656-20180228144249016-471874135.pnguploading.4e448015.gif轉存失敗重新上傳取消

數值(number)也與C或者Java的數值非常相似。除去未曾使用的八進制與十六進制格式。除去一些編碼細節。

1237656-20180228144256882-1403552979.pnguploading.4e448015.gif轉存失敗重新上傳取消

使用範例及注意事項

1.****對象的每個屬性都要有雙引號,否則json數據不能正常加載

我們寫一個python腳本做下測試:

import json

with open("data.json", 'r') as load\_f:
    data\=json.load(load\_f) print(data)

(1){“name”:”taoeyhuang”,”age”:18}

(2){“name”:”taoeyhuang”,”age”:18,”sex”:”male”,hair:”black”} 這裏hair屬性沒有帶雙引號

異常日誌
“json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 44 (char 43)”

我們也可以看出異常的原因是雙引號的問題

2.多對象範例(數組+對象)

數組中可以嵌套數組也可以嵌套對象

{ "name": "BeJson", "url": "http://www.bejson.com", "page": 88, "isNonProfit": true, "address": { "street": "科技園路.", "city": "江蘇蘇州", "country": "中國" }, "links": [
        { "name": "Google", "url": "http://www.google.com" },
        { "name": "Baidu", "url": "http://www.baidu.com" },
        { "name": "SoSo", "url": "http://www.SoSo.com" }
  ]
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章