內容:python
1.什麼是JSON編程
2.JSON語法json
3.JSON如何使用數組
參考:https://baike.baidu.com/item/JSON/2462549?fr=aladdin網絡
1.什麼是JSON編程語言
百度百科解釋:JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規範)的一個子集,採用徹底獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成爲理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提高網絡傳輸效率函數
總的來講JSON是一種數據交換格式,相似XML,最開始是從JavaScript中弄出這個東西來的this
JSON特色及優勢:spa
雖然JSON 使用 JavaScript 語法來描述數據對象,可是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支持許多不一樣的編程語言,json以下圖所示:code
2.JSON語法
1 // JSON對象 2 { 3 "name": "wyb666", 4 "age": 21 5 } 6 7 // JSON數組 8 nums = [21, 22, 23, 24, 25, "666"]
JSON 鍵/值對:JSON 鍵值對是用來保存 JS 對象的一種方式,和 JS 對象的寫法也大同小異,鍵/值對組合中的鍵名寫在前面並用雙引號 "" 包裹,使用冒號 : 分隔,而後緊接着值:
1 { 2 "name": "wyb" 3 }
合格的json對象:
["one", "two", "three"] { "one": 1, "two": 2, "three": 3 } {"names": ["張三", "李四"] } [ { "name": "張三"}, {"name": "李四"} ]
不合格的json對象:
{ name: "張三", 'age': 32 } // 屬性名必須使用雙引號 [32, 64, 128, 0xFFF] // 不能使用十六進制值 { "name": "張三", "age": undefined } // 不能使用undefined { "name": "張三", "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'), "getName": function() {return this.name;} // 不能使用函數和日期對象 }
3.JSON如何使用
JSON 能夠將 JavaScript 對象中表示的一組數據轉換爲字符串,而後就能夠在網絡或者程序之間輕鬆地傳遞這個字符串,並在須要的時候將它還原爲各編程語言(Java、python、PHP等)所支持的數據格式。在用到AJAX時,若是須要用到數組傳值,這時就須要用JSON將數組轉化爲字符串
JSON使用實例:
有一個常見的需求是在 字典/數組 和 字符串 之間相互轉換,這個過程叫作 序列化/反序列化
在 js 中, 序列化使用 JSON 數據格式,全稱 JavaScript Object Notation (js 對象標記),這個格式已是如今用於互聯網數據交換的事實標準格式了
JavaScript中的序列化/反序列化操做:
1 var s = JSON.stringify([1, 2, 3, 4]) // 將數組轉化成字符串 2 console.log('序列化後的字符串: ', typeof s, s) 3 var a = JSON.parse(s) 4 console.log('反序列化後的數組: ', typeof a, a) // 將字符串轉化成數組或對象
python中的序列化/反序列化操做:
1 # json.dumps方法能夠將字典等數據格式化成一個字符串,這樣能夠方便別的編程語言進行調用 2 # json.dump方法把字典等數據類型序列化進入一個文件中,等待別的程序進行調用 3 # json.loads進行反序列化 4 # json.load方法讀取文件中的內容 5 6 import json 7 s = {"k1": "v1", "k2": "v2"} 8 k = json.dumps(s) # 序列化: 將字典、數組等類型轉換成字符串 9 print(k, type(k)) 10 res = json.loads(k) # 反序列化: 將字符串轉換成其餘類型(字典、數組等) 11 print(res, type(res)) 12 13 # 打開一個文件向其中寫入字典、列表等數據類型 14 with open("test.json", "w") as f: 15 json.dump(s, f) 16 17 # 讀取文件內容 18 with open("test.json", "r") as f: 19 r = json.load(f) 20 print(r) 21 print(type(r))