和一些同學(xué)一樣:總是感覺json對(duì)象(其實(shí)json不是對(duì)象)和js對(duì)象的字面量表示法相同,最近學(xué)習(xí)json,真心搞不懂,js對(duì)象和json有什么區(qū)別?就是感覺json的key要用” “括起來,但是js對(duì)象的字面量表示法不需要。 比如:
//js對(duì)象的字面量表示法: var people1={ name:'hehe', age:18 }; //json的格式是: var people1={ "name":'hehe', "age":18 }; 二者相同的地方是,看起來都是數(shù)據(jù),而且恰巧又都是文本;不同的地方在于,JS字面量的文本是被腳本引擎直接解析的,而JSON的文本,如果要轉(zhuǎn)化為JS對(duì)象的話,是交給eval函數(shù)來處理的,那么,如何理解JSON的文本,就取決于這個(gè)函數(shù),而不是腳本引擎,因?yàn)檫@2者的處理根本就不在一個(gè)層面上。 一直以為JSON是對(duì)象,然而在閱讀js高程中出現(xiàn)了一些不理解的地方,網(wǎng)上查閱才發(fā)現(xiàn)JSON與JS有很大的不同。 var obj={width:100,height:200}
,這樣的并不叫JSON,并且JSON只是一種數(shù)據(jù)格式,并不是具體的實(shí)例對(duì)象。但很多人把這樣的JS對(duì)象當(dāng)成JSON。 JSON(javaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,JSON格式的數(shù)據(jù),主要是為了跨平臺(tái)交流數(shù)據(jù)用的。 但JSON和Javascript確實(shí)存在淵源,可以說這種數(shù)據(jù)格式是從JavaScript對(duì)象中演變出來的,它是JavaScript的一個(gè)子集。JSON本身的意思就是JavaScript對(duì)象表示法(JavaScript Object Notation),它用嚴(yán)格的JavaScript對(duì)象表示法來表示結(jié)構(gòu)化的數(shù)據(jù)。 它是一種嚴(yán)格的js對(duì)象的格式,JSON的屬性名必須有雙引號(hào),如果值是字符串,也必須是雙引號(hào); JSON只是一種數(shù)據(jù)格式(或者叫數(shù)據(jù)形式),數(shù)據(jù)格式其實(shí)就是一種規(guī)范,格式、形式、規(guī)范是不能用來存諸數(shù)據(jù)的。我們不能把以下的對(duì)象叫JSON,比如:
新聞熱點(diǎn)
疑難解答
圖片精選