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