JSON格式

內容: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 對象表示法(JavaScript Object Notation)
  • JSON 是輕量級的文本數據交換格式
  • JSON 獨立於語言 *
  • JSON 具備自我描述性,更易理解

雖然JSON 使用 JavaScript 語法來描述數據對象,可是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支持許多不一樣的編程語言,json以下圖所示:code

 

 

2.JSON語法

在 JS 語言中,一切都是對象。所以,任何支持的類型均可以經過 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))
相關文章
相關標籤/搜索