這篇文章將為大家詳細(xì)講解有關(guān)json數(shù)據(jù)指的是什么,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
json數(shù)據(jù)是是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。
JSON數(shù)據(jù)是:
JSON (JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript (w3c制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。——百度百科
數(shù)據(jù)傳輸是我們?cè)谇么a時(shí),經(jīng)常遇到的一個(gè)場(chǎng)景,前后端交互。給數(shù)據(jù)一個(gè)統(tǒng)一的格式有利于我們編寫和解析數(shù)據(jù)。
json,是一種數(shù)據(jù)格式,在與后端的數(shù)據(jù)交互中有較為廣泛的應(yīng)用。
JSON的誕生
JSON是 (JavaScript Object Notation, JS 對(duì)象標(biāo)記),它是一種數(shù)據(jù)交換格式。在JSON出現(xiàn)之前,大家一直用XML來傳遞數(shù)據(jù)。因?yàn)閄ML是一種純文本格式,所以它適合在網(wǎng)絡(luò)上交換數(shù)據(jù)。XML本身不算復(fù)雜,但是,加上DTD、XSD、XPath、XSLT等一大堆復(fù)雜的規(guī)范以后,任何正常的軟件開發(fā)人員碰到XML都會(huì)感覺頭大了,最后大家發(fā)現(xiàn),即使你努力鉆研幾個(gè)月,也未必搞得清楚XML的規(guī)范。
終于,在2002年的一天,道格拉斯·克羅克福特(DouglasCrockford)同學(xué)為了拯救深陷水深火熱同時(shí)又被某幾個(gè)巨型軟件企業(yè)長(zhǎng)期愚弄的軟件工程師,發(fā)明了JSON這種超輕量級(jí)的數(shù)據(jù)交換格式。
由于JSON非常簡(jiǎn)單,很快就風(fēng)靡Web世界,并且成為ECMA標(biāo)準(zhǔn)。幾乎所有編程語言都有解析JSON的庫,而在JavaScript中,我們可以直接使用JSON,因?yàn)镴avaScript內(nèi)置了JSON的解析。把任何JavaScript對(duì)象變成JSON,就是把這個(gè)對(duì)象序列化成一個(gè)JSON格式的字符串,這樣才能夠通過網(wǎng)絡(luò)傳遞給其他計(jì)算機(jī)。如果我們收到一個(gè)JSON格式的字符串,只需要把它反序列化成一個(gè)JavaScript對(duì)象,就可以在JavaScript中直接使用這個(gè)對(duì)象了。
轉(zhuǎn)義
我們?cè)谡{(diào)用 jsonp 接口或者調(diào)用js文件的時(shí)候,由于文件編碼不同會(huì)導(dǎo)致出現(xiàn)亂碼的問題。 如果你的文件出現(xiàn)了非英文字符,如果調(diào)用時(shí)文件編碼不一致,同樣會(huì)出現(xiàn)亂碼情況。
這也就是為什么要數(shù)據(jù)統(tǒng)一格式的原因。
JSON 是適用于 Ajax 應(yīng)用程序的一種有效格式,原因是它使 JavaScript 對(duì)象和字符串值之間得以快速轉(zhuǎn)換 JSON是一種傳遞對(duì)象的語法
JSON是一個(gè)提供了stringify和parse方法的內(nèi)置對(duì)象
stringify將js對(duì)象轉(zhuǎn)化為符合json標(biāo)準(zhǔn)的字符串
parse將符合json標(biāo)準(zhǔn)的字符串轉(zhuǎn)化為js對(duì)象
JSON對(duì)值的類型和格式有嚴(yán)格的規(guī)定
復(fù)合類型的值只能是數(shù)組或?qū)ο螅荒苁呛瘮?shù)、正則表達(dá)式對(duì)象、日期對(duì)象。
簡(jiǎn)單類型的值只有四種:字符串、數(shù)值(必須以十進(jìn)制表示)、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
字符串必須使用雙引號(hào)表示,不能使用單引號(hào)。
對(duì)象的鍵名必須放在雙引號(hào)里面。
數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面,不能加逗號(hào)。
PS: 需要注意的是,空數(shù)組和空對(duì)象都是合格的JSON值,null本身也是一個(gè)合格的JSON值。
JSON 的語法規(guī)則
JSON 的語法規(guī)則十分簡(jiǎn)單,可稱得上“優(yōu)雅完美”,總結(jié)起來有:
數(shù)組(Array)用方括號(hào)(“[]”)表示。
對(duì)象(Object)用大括號(hào)(”{}”)表示。
名稱/值對(duì)(name/value)組合成數(shù)組和對(duì)象。
名稱(name)置于雙引號(hào)中,值(value)有字符串、數(shù)值、布爾值、null、對(duì)象和數(shù)組。
并列的數(shù)據(jù)之間用逗號(hào)(“,”)分隔
實(shí)例
JSON 數(shù)據(jù)的書寫格式是:名稱/值對(duì)。
名稱/值對(duì)組合中的名稱寫在前面(在雙引號(hào)中),值對(duì)寫在后面,中間用冒號(hào)隔開,
其中 值 可以是:數(shù)字(整數(shù)或浮點(diǎn)數(shù))、字符串(在雙引號(hào)中)、布爾值(true或false)、數(shù)組(在方括號(hào)中)、對(duì)象(在花括號(hào)中)、null
varjson= {"password":123456,"name":"myname","Booleans":true,"Array":[x,y,z],"object":{}}
或者是嵌套使用
轉(zhuǎn)義概述
為什么需要轉(zhuǎn)義?在js中我們使用的js對(duì)象進(jìn)行處理,但是在與后端數(shù)據(jù)交換的時(shí)候,我們發(fā)送規(guī)定的json格式的字符串,所以在給后端發(fā)送或接受數(shù)據(jù)的時(shí)候,需要轉(zhuǎn)義
{name:"myname",password:123456} "{"name":"myname","password":123456}"
其中json字符串轉(zhuǎn)js對(duì)象,調(diào)用parse方法:
js對(duì)象 = JSON.parse(json字符串);
js對(duì)象轉(zhuǎn)json字符串,調(diào)用stringify方法:
json字符串 = JSON.stringify(js對(duì)象);
關(guān)于json數(shù)據(jù)指的是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章標(biāo)題:json數(shù)據(jù)指的是什么-創(chuàng)新互聯(lián)
地址分享:http://www.chinadenli.net/article44/dhseee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、App設(shè)計(jì)、全網(wǎng)營銷推廣、Google、動(dòng)態(tài)網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容