JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基於ECMAScript
(w3c制定的js規範)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成爲理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。
JSON 鍵/值對
JSON 鍵值對是用來保存 JS 對象的一種方式,和 JS 對象的寫法也大同小異,鍵/值對組合中的鍵名寫在前面並用雙引號 "" 包裹,使用冒號 : 分隔,然後緊接着值:
{"firstName": "John"}
JSON 與 JS 對象的關係
很多人搞不清楚 JSON 和 Js 對象的關係,甚至連誰是誰都不清楚。其實,可以這麼理解:
JSON 是 JS 對象的字符串表示法,它使用文本表示一個 JS 對象的信息,本質是一個字符串。
表示對象
JSON最常用的格式是對象的 鍵值對。例如下面這樣:
{"firstName": "Brett", "lastName": "McLaughlin"}
表示數組
和普通的 JS 數組一樣,JSON 表示數組的方式也是使用方括號 []。
{
"people":[
{"firstName": "Brett",
"lastName":"McLaughlin"
},
{
"firstName":"Jason", "lastName":"Hunter"} ]
}
JSON 函數
使用 JSON 函數需要導入 json 庫:import json。
函數 | 描述 |
---|---|
json.dumps | 將 Python 對象編碼成 JSON 字符串 |
json.loads | 將已編碼的 JSON 字符串解碼爲 Python 對象 |
python 原始類型向 json 類型的轉化對照表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
json 類型轉換到 python 的類型對照表:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |
JSON Demjson 函數
函數 | 描述 |
---|---|
encode | 將 Python 對象編碼成 JSON 字符串 |
decode | 將已編碼的 JSON 字符串解碼爲 Python 對象 |