1. 程式人生 > >關於JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法

關於JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法

1. JSON.parse(jsonString): 在一個字串中解析出JSON物件

?

1

2

3

var str = '[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]';

JSON.parse(str);

結果:

2. JSON.stringify(obj) : 將一個JSON物件轉換成字串

?

1

2

3

var obj = [{

"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}];

JSON.stringify(obj);

結果:

?

1

"[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]"

3. jQuery.parseJSON(jsonString) : 將格式完好的JSON字串轉為與之對應的JavaScript物件

?

1

2

3

var str = '[{"href":"baidu.com","text":"test","orgId":123,"dataType":"curry","activeClass":"haha"}]';

jQuery.parseJSON(str);

結果:

4.JSON.parse()和jQuery.parseJSON()的區別:

有的瀏覽器不支援JSON.parse()方法,使用jQuery.parseJSON()方法時,在瀏覽器支援時會返回執行JSON.parse()方法的結果,否則會返回類似執行eval()方法的結果,以上結論參考jquery 1.9.1 得出:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

parseJSON: function( data ) {

// Attempt to parse using the native JSON parser first

if ( window.JSON && window.JSON.parse ) {

return window.JSON.parse( data );

}

if ( data === null ) {

return data;

}

if ( typeof data === "string" ) {

// Make sure leading/trailing whitespace is removed (IE can't handle it)

data = jQuery.trim( data );

if ( data ) {

// Make sure the incoming data is actual JSON

if ( rvalidchars.test( data.replace( rvalidescape, "@" )

.replace( rvalidtokens, "]" )

.replace( rvalidbraces, "")) ) {

return ( new Function( "return " + data ) )();

}

}

}

jQuery.error( "Invalid JSON: " + data );

},