當前位置:成語大全網 - 新華字典 - json對象和js對象的區別?

json對象和js對象的區別?

JSON與JS對象的區別

和壹些同學壹樣:總是感覺json對象(其實json不是對象)和js對象的字面量表示法相同,最近學習json,真心搞不懂,js對象和json有什麽區別?就是感覺json的key要用” “括起來,但是js對象的字面量表示法不需要。?

比如:

//js對象的字面量表示法:?

var people1={?

name:'hehe',?

age:18?

};?

//json的格式是:?

var people1={?

"name":'hehe',?

"age":18?

};?

1

2

3

4

5

6

7

8

9

10

11

二者相同的地方是,看起來都是數據,而且恰巧又都是文本;不同的地方在於,JS字面量的文本是被腳本引擎直接解析的,而JSON的文本,如果要轉化為JS對象的話,是交給eval函數來處理的,那麽,如何理解JSON的文本,就取決於這個函數,而不是腳本引擎,因為這2者的處理根本就不在壹個層面上。?

壹直以為JSON是對象,然而在閱讀js高程中出現了壹些不理解的地方,網上查閱才發現JSON與JS有很大的不同。?

var obj={width:100,height:200},這樣的並不叫JSON,並且JSON只是壹種數據格式,並不是具體的實例對象。但很多人把這樣的JS對象當成JSON。?

JSON(JavaScript Object Notation)是壹種輕量級的數據交換格式,JSON格式的數據,主要是為了跨平臺交流數據用的。?

但JSON和JavaScript確實存在淵源,可以說這種數據格式是從JavaScript對象中演變出來的,它是JavaScript的壹個子集。JSON本身的意思就是JavaScript對象表示法(JavaScript Object Notation),它用嚴格的JavaScript對象表示法來表示結構化的數據。?

它是壹種嚴格的js對象的格式,JSON的屬性名必須有雙引號,如果值是字符串,也必須是雙引號;?

JSON只是壹種數據格式(或者叫數據形式),數據格式其實就是壹種規範,格式、形式、規範是不能用來存諸數據的。我們不能把以下的對象叫JSON,比如:?

<script>

var obj2={};//這只是JS對象

var obj3={width:100,height:200};/*這跟JSON就更不沾邊了,只是JS的對象 */

var obj4={'width':100,'height':200};/*這跟JSON就更不沾邊了,只是JS的對象 */

var obj5={"width":100,"height":200,"name":"rose"}; /*我們可以把這個稱做:JSON格式的JavaScript對象 */

var str1='{"width":100,"height":200,"name":"rose"}';/*我們可以把這個稱做:JSON格式的字符串 */

var a=[

{"width":100,"height":200,"name":"rose"},

{"width":100,"height":200,"name":"rose"},

{"width":100,"height":200,"name":"rose"},

];

/*這個叫JSON格式的數組,是JSON的稍復雜壹點的形式 */

var str2='['+

'{"width":100,"height":200,"name":"rose"},'+

'{"width":100,"height":200,"name":"rose"},'+

'{"width":100,"height":200,"name":"rose"},'+

']' ;

/* ?這個叫稍復雜壹點的JSON格式的字符串 ?*/?

</script>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20