什么是JSON

一咆畏、什么是json松邪?

json的全稱為:JavaScript Object Notation礼饱,是一種輕量級(jí)的數(shù)據(jù)交互格式践宴。它基于 ECMAScript (歐洲計(jì)算機(jī)協(xié)會(huì)制定的js規(guī)范)的一個(gè)子集鲸匿,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)∽杓纾【以上來(lái)自于百度百科】

簡(jiǎn)單來(lái)說(shuō):json就是一種在各個(gè)編程語(yǔ)言中流通的數(shù)據(jù)格式带欢,負(fù)責(zé)不同編程語(yǔ)言中的數(shù)據(jù)傳遞和交互。
類似于:

  • 國(guó)際通用語(yǔ)言-英語(yǔ)
  • 中國(guó)56個(gè)民族不同地區(qū)的通用語(yǔ)言-普通話烤惊。

但真要說(shuō)json到底是什么乔煞,以及json的作用,我們總是難以描述柒室,下面我將從各個(gè)方面來(lái)進(jìn)行說(shuō)明:

二渡贾、與javascript的關(guān)系

相信很多程序員只要一提到j(luò)son總會(huì)想到j(luò)s,因?yàn)閖son不僅含有js的名字雄右,其格式也與js中對(duì)象(object)的格式并無(wú)一二空骚。

這里我們要進(jìn)行一個(gè)說(shuō)明,首先json是基于ECMAScript語(yǔ)法不脯,但這并不意味著json必須在js中使用府怯,或者必須要產(chǎn)生什么聯(lián)系,json在js中的處理也并沒(méi)有比其他語(yǔ)言占有更多優(yōu)勢(shì)防楷。只是因?yàn)檎Z(yǔ)法相似,而使得js開(kāi)發(fā)者能更快的上手json而已则涯。

事實(shí)上幾乎所有編程語(yǔ)言中都有對(duì)json數(shù)據(jù)轉(zhuǎn)換的支持:
js中复局,json與對(duì)象的轉(zhuǎn)換:JSON.parse()/JSON.stringify();
php中,json與數(shù)組的轉(zhuǎn)換:json_encode()/json_decode();
java中粟判,json與對(duì)象的轉(zhuǎn)換:fromJson()/toJson();
python中亿昏,json與對(duì)象的轉(zhuǎn)換:json.dumps()/json.loads();

三、語(yǔ)法格式

那么json的語(yǔ)法格式到底是怎樣的呢档礁?我們先來(lái)看一段json數(shù)據(jù):
{"name":"admin","age":18}
這就是一種最簡(jiǎn)單的json角钩,如果有學(xué)過(guò)js的開(kāi)發(fā)者是不是發(fā)現(xiàn)json的語(yǔ)法與js中object的語(yǔ)法幾乎相同
但是呻澜,注意:

  • json是一種純字符數(shù)據(jù)递礼,不屬于編程語(yǔ)言
  • json的語(yǔ)法與js中object的語(yǔ)法幾乎一致(下一部分說(shuō)明不同)
  • json數(shù)據(jù)以鍵值對(duì)形式存在,多個(gè)鍵值對(duì)之間用逗號(hào),隔開(kāi)羹幸,鍵值對(duì)的鍵和值之間用冒號(hào):連接
  • json數(shù)據(jù)在js對(duì)象的基礎(chǔ)上做了嚴(yán)格化
  • json數(shù)據(jù)中的鍵值對(duì)可以使用編程語(yǔ)言中所謂的關(guān)鍵字(*見(jiàn)注意事項(xiàng))
  • json的數(shù)據(jù)可以用花括號(hào){}或中括號(hào)[]包裹脊髓,對(duì)應(yīng)js中的object和array

四、注意事項(xiàng)

為什么說(shuō)幾乎相同栅受,而不是完全相同呢将硝?接下來(lái)我們要說(shuō)的就是json與js中對(duì)象的不同點(diǎn)恭朗,也是json嚴(yán)格要求的部分:

  • json的鍵值對(duì)的部分,必須用雙引號(hào)"包裹依疼,單引號(hào)都不行(所以如果在鍵中出現(xiàn)了關(guān)鍵字痰腮,也被字符化了),而js中對(duì)象沒(méi)有強(qiáng)制要求(所以在鍵中不允許出現(xiàn)關(guān)鍵字)
  • json的鍵值對(duì)的部分律罢,不允許出現(xiàn)函數(shù)function膀值,undefinedNaN弟翘,但是可以有null虫腋,js中對(duì)象的值中可以出現(xiàn)
  • json數(shù)據(jù)結(jié)束后,不允許出現(xiàn)沒(méi)有意義的逗號(hào),如:{"name":"admin","age":18,}稀余,注意看數(shù)據(jù)結(jié)尾部分18的后面的逗號(hào)悦冀,不允許出現(xiàn)

五、總結(jié)

所以睛琳,json數(shù)據(jù)的格式可以是:
{"name":"admin","age":18}
也可以是:
["hello",3.1415,"json"]
還可以是:
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"張三","age":20}]

不能是:(key沒(méi)有雙引號(hào))
{"name":"admin",age:18}
不能是:(無(wú)意義的逗號(hào))
{"name":"admin","age":18,}
不能是:(不允許出現(xiàn)函數(shù))
{"name":"admin","age":18,"show":function()()}
不能是:(不允許出現(xiàn)undefined)
{"name":"admin","age":18,"show":undefined}
不能是:(不允許出現(xiàn)NaN)
{"name":"admin","age":18,"strong":NaN}
不能是:(無(wú)意義的逗號(hào))
["hello",3.1415,"json",]
不能是:(無(wú)意義的逗號(hào))
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"張三","age":20},]


以上內(nèi)容盒蟆,希望能對(duì)以后使用json有所幫助

其實(shí)作為通用數(shù)據(jù),xml也是一種不錯(cuò)的選擇师骗,但是隨著json的出現(xiàn)历等,xml的使用場(chǎng)景正慢慢被json蠶食,相對(duì)來(lái)說(shuō)json在某些方面下的體現(xiàn)還是比xml稍具優(yōu)勢(shì)辟癌,后期可再開(kāi)一篇文檔說(shuō)明json和xml的區(qū)別寒屯。


如有不全或錯(cuò)誤,歡迎留言指出黍少,謝謝支持……^?_?^

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寡夹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子厂置,更是在濱河造成了極大的恐慌菩掏,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昵济,死亡現(xiàn)場(chǎng)離奇詭異智绸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)访忿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門瞧栗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人醉顽,你說(shuō)我怎么就攤上這事沼溜。” “怎么了游添?”我有些...
    開(kāi)封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵系草,是天一觀的道長(zhǎng)通熄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)找都,這世上最難降的妖魔是什么唇辨? 我笑而不...
    開(kāi)封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮能耻,結(jié)果婚禮上赏枚,老公的妹妹穿的比我還像新娘。我一直安慰自己晓猛,他們只是感情好饿幅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著戒职,像睡著了一般栗恩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洪燥,一...
    開(kāi)封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天磕秤,我揣著相機(jī)與錄音,去河邊找鬼捧韵。 笑死市咆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的再来。 我是一名探鬼主播蒙兰,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芒篷!你這毒婦竟也來(lái)了癞己?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤梭伐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后仰担,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體糊识,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年摔蓝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赂苗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贮尉,死狀恐怖拌滋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猜谚,我是刑警寧澤败砂,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布赌渣,位于F島的核電站,受9級(jí)特大地震影響昌犹,放射性物質(zhì)發(fā)生泄漏坚芜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一斜姥、第九天 我趴在偏房一處隱蔽的房頂上張望鸿竖。 院中可真熱鬧,春花似錦铸敏、人聲如沸缚忧。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)闪水。三九已至,卻和暖如春桩撮,著一層夾襖步出監(jiān)牢的瞬間敦第,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工店量, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芜果,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓融师,卻偏偏與公主長(zhǎng)得像右钾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旱爆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容