JSON

JSON:JavaScript 對(duì)象表示法(JavaScript Object Notation)亲铡。
JSON 是存儲(chǔ)和交換文本信息的語(yǔ)法才写。類似 XML。
JSON 比 XML 更小奖蔓、更快琅摩,更易解析。
什么是 JSON 锭硼?

  • JSON 指的是 JavaScript 對(duì)象表示法(JavaScript Object Notation)
  • JSON 是輕量級(jí)的文本數(shù)據(jù)交換格式
  • JSON 獨(dú)立于語(yǔ)言 *
  • JSON 具有自我描述性房资,更易理解

JSON 使用 JavaScript 語(yǔ)法來(lái)描述數(shù)據(jù)對(duì)象,但是 JSON 仍然獨(dú)立于語(yǔ)言和平臺(tái)檀头。JSON 解析器和 JSON 庫(kù)支持許多不同的編程語(yǔ)言轰异。
JSON - 轉(zhuǎn)換為 JavaScript 對(duì)象
JSON 文本格式在語(yǔ)法上與創(chuàng)建 JavaScript 對(duì)象的代碼相同。
由于這種相似性暑始,無(wú)需解析器搭独,JavaScript 程序能夠使用內(nèi)建的 eval() 函數(shù),用 JSON 數(shù)據(jù)來(lái)生成原生的 JavaScript 對(duì)象廊镜。

類似 XML
  • JSON 是純文本
  • JSON 具有“自我描述性”(人類可讀)
  • JSON 具有層級(jí)結(jié)構(gòu)(值中存在值)
  • JSON 可通過(guò) JavaScript 進(jìn)行解析
  • JSON 數(shù)據(jù)可使用 AJAX 進(jìn)行傳輸
相比 XML 的不同之處
  • 沒(méi)有結(jié)束標(biāo)簽
  • 更短
  • 讀寫(xiě)的速度更快
  • 能夠使用內(nèi)建的 JavaScript eval() 方法進(jìn)行解析
  • 使用數(shù)組
  • 不使用保留字
為什么使用 JSON牙肝?

對(duì)于 AJAX 應(yīng)用程序來(lái)說(shuō),JSON 比 XML 更快更易使用:

  • 使用 XML
  • 讀取 XML 文檔
  • 使用 XML DOM 來(lái)循環(huán)遍歷文檔
  • 讀取值并存儲(chǔ)在變量中
使用 JSON
  • 讀取 JSON 字符串
  • 用 eval() 處理 JSON 字符串
JSON 語(yǔ)法規(guī)則

JSON 語(yǔ)法是 JavaScript 對(duì)象表示法語(yǔ)法的子集。

  • 數(shù)據(jù)在名稱/值對(duì)中
  • 數(shù)據(jù)由逗號(hào)分隔
  • 花括號(hào)保存對(duì)象
  • 方括號(hào)保存數(shù)組
JSON 名稱/值對(duì)

JSON 數(shù)據(jù)的書(shū)寫(xiě)格式是:名稱/值對(duì)配椭。
名稱/值對(duì)包括字段名稱(在雙引號(hào)中)虫溜,后面寫(xiě)一個(gè)冒號(hào),然后是值:
"firstName" : "John"

JSON 值

JSON 值可以是:

  • 數(shù)字(整數(shù)或浮點(diǎn)數(shù))
  • 字符串(在雙引號(hào)中)
  • 邏輯值(true 或 false)
  • 數(shù)組(在方括號(hào)中)
  • 對(duì)象(在花括號(hào)中)
  • null

JSON 對(duì)象
JSON 對(duì)象在花括號(hào)中書(shū)寫(xiě):
對(duì)象可以包含多個(gè)名稱/值對(duì):
{ "firstName":"John" , "lastName":"Doe" }
JSON 數(shù)組
JSON 數(shù)組在方括號(hào)中書(shū)寫(xiě):
數(shù)組可包含多個(gè)對(duì)象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
在上面的例子中股缸,對(duì)象 "employees" 是包含三個(gè)對(duì)象的數(shù)組衡楞。每個(gè)對(duì)象代表一條關(guān)于某人(有姓和名)的記錄。
JSON 使用 JavaScript 語(yǔ)法
因?yàn)?JSON 使用 JavaScript 語(yǔ)法敦姻,所以無(wú)需額外的軟件就能處理 JavaScript 中的 JSON瘾境。
通過(guò) JavaScript,您可以創(chuàng)建一個(gè)對(duì)象數(shù)組镰惦,并像這樣進(jìn)行賦值:
例子
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
JSON 文件
JSON 文件的文件類型是 ".json"
JSON 文本的 MIME 類型是 "application/json"
把 JSON 文本轉(zhuǎn)換為 JavaScript 對(duì)象
JSON 最常見(jiàn)的用法之一迷守,是從 web 服務(wù)器上讀取 JSON 數(shù)據(jù)(作為文件或作為 HttpRequest),將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對(duì)象旺入,然后在網(wǎng)頁(yè)中使用該數(shù)據(jù)盒犹。
JSON 實(shí)例 - 來(lái)自字符串的對(duì)象
創(chuàng)建包含 JSON 語(yǔ)法的 JavaScript 字符串:
var txt = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
由于 JSON 語(yǔ)法是 JavaScript 語(yǔ)法的子集,JavaScript 函數(shù) eval() 可用于將 JSON 文本轉(zhuǎn)換為 JavaScript 對(duì)象眨业。
eval() 函數(shù)使用的是 JavaScript 編譯器急膀,可解析 JSON 文本,然后生成 JavaScript 對(duì)象龄捡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卓嫂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聘殖,更是在濱河造成了極大的恐慌晨雳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奸腺,死亡現(xiàn)場(chǎng)離奇詭異餐禁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)突照,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)帮非,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人讹蘑,你說(shuō)我怎么就攤上這事末盔。” “怎么了座慰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵陨舱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我版仔,道長(zhǎng)游盲,這世上最難降的妖魔是什么误墓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮益缎,結(jié)果婚禮上谜慌,老公的妹妹穿的比我還像新娘。我一直安慰自己链峭,他們只是感情好畦娄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布又沾。 她就那樣靜靜地躺著弊仪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杖刷。 梳的紋絲不亂的頭發(fā)上励饵,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音滑燃,去河邊找鬼役听。 笑死,一個(gè)胖子當(dāng)著我的面吹牛表窘,可吹牛的內(nèi)容都是我干的典予。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乐严,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瘤袖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起昂验,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捂敌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后既琴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體占婉,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年甫恩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逆济。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡磺箕,死狀恐怖纹腌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滞磺,我是刑警寧澤升薯,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站击困,受9級(jí)特大地震影響涎劈,放射性物質(zhì)發(fā)生泄漏广凸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一蛛枚、第九天 我趴在偏房一處隱蔽的房頂上張望谅海。 院中可真熱鬧,春花似錦蹦浦、人聲如沸扭吁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)侥袜。三九已至,卻和暖如春溉贿,著一層夾襖步出監(jiān)牢的瞬間枫吧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工宇色, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留九杂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓宣蠕,卻偏偏與公主長(zhǎng)得像例隆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抢蚀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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