做爲一名開發人員,咱們時常跟JSON打交道,但對於JSON卻有這很多的疑惑,但日常也就是停留在使用的角度上。今天咱們就來走進JSON。 咱們首先引入兩個問題,這兩個問題將幫助咱們理解JSON。html
第一個問題的答案就隱藏在JSON的名字當中,JSON: JavaScript Object Notation. 咱們重點關注Notation這個詞,前兩個詞咱們很熟悉。web
>Notation: 符號,記號,譜號。 咱們是否能夠將JSON理解爲JavaScript對象的符號形式呢? 帶着這個疑問,我查看了[JSON](http://www.json.org/json-zh.html)的官網:  請注意標紅的部分,這是關鍵。咱們在強調一遍,一種輕量級的數據交換格式。
根據以上的求索,咱們能夠對JSON作出如下論斷:json
從JSON的官網能夠看到JSON有兩種結構:後端
"名稱/值"對的集合,好怪的說法啊,JSON脫胎於JavaScript,簡單的說,JSON就是JavaScript的對象和數組。
那麼JSON是JavaScript的對象嗎?並非,說JSON是JavaScript的對象和數組只是爲了方便理解JSON而已,JavaScript Object Notation, JavaScript Object Notation,咱們強調兩遍,Notaiton在牛津字典的解釋是 a system of signs or symbols used to represent information---即一種表明某種信息的符號。叫 JavaScript Object Notation的緣由也許是JSON的做者道格拉斯同志在設計JSON時參考了JavaScript Object的對象語法而已。
JSON的形式:數組
接下來,咱們從數據交換形式的角度來解釋JSON,數據交換是誰和誰作交換呢? web客戶端和服務端吧。在先後端分離的大勢,JSON是前段和後端的一種數據交換形式,不單單是先後端的一種數據交換形式,仍是系統之間進行數據交換的一種形式。前後端分離
爲何須要JSON呢?
那就要請出XML同志了,在沒有JSON同志以前,都使用XML進行數據交換,可是XML並不簡單,有着各類各樣的數據約束,越搞越複雜,咱們但願數據交換形式儘量的簡單一些,不想再去了解那些讓人頭痛的那一大堆的複雜規範。設計