JSON,全稱JavaScript對(duì)象表示法(JavaScript Object Notation)。筆者在學(xué)習(xí)時(shí)接觸到JSON常用的兩種格式(JSON字符串&JSON對(duì)象)品追,查閱了多份資料才理清了兩者的區(qū)別與聯(lián)系新娜,以下是自己的歸納衅斩。
一襟沮、區(qū)別與聯(lián)系
在數(shù)據(jù)傳輸流程中,json是以文本跪腹,即字符串的形式傳遞的褂删,而JS操作的是JSON對(duì)象,所以冲茸,在JS操作之前需要將其轉(zhuǎn)換為JSON對(duì)象屯阀。
1. JSON字符串
JSON字符串缅帘,顧名思義數(shù)據(jù)類型是字符串,不能直接讀取JSON的鍵值對(duì)难衰。如:
‘{“name”:“evelyn”,"country":“China”}’
2. JSON對(duì)象
JSON (JavaScript Object Notation) is an open-standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is the most common data format used for asynchronous browser/server communication (AJAJ), largely replacing XML which is used by AJAX.(from https://en.wikipedia.org/wiki/JSON)股毫,如:
{“name”:“evelyn”,"country":“China”}
從形式上可以看到,JSON對(duì)象加上引號(hào)便是JSON字符串召衔。
二、兩者之間的轉(zhuǎn)換
1. "JSON字符串"轉(zhuǎn)化為"JSON對(duì)象"
要運(yùn)用下面的sJson(JSON字符串)祭陷,必須運(yùn)用下面的要領(lǐng)先轉(zhuǎn)化為JSON對(duì)象(這一點(diǎn)在ajax返回JSON數(shù)據(jù)時(shí)經(jīng)常使用)苍凛。將"JSON字符串"轉(zhuǎn)化為"JSON對(duì)象"的三種方法:
(1) JSON.parse( ). 示例如下:
運(yùn)行結(jié)果如下:
從運(yùn)行結(jié)果可以知道,經(jīng)過(guò)方法JSON.parse( )兵志,字符串轉(zhuǎn)換成JSON對(duì)象醇蝴。
(2)jQuery.parseJSON( ),示例如下:
var oJson=jQuery.parseJSON(sJson);
運(yùn)行結(jié)果與上面例子一樣想罕。
(3) eval( )悠栓,示例如下:
var oJson=eval( '('+sJson+')' );
運(yùn)行結(jié)果與上面例子一樣。
2. "JSON對(duì)象"轉(zhuǎn)化為"JSON字符串"
將"JSON對(duì)象"轉(zhuǎn)化為"JSON字符串"的兩種方法:
(1)JSON.stringify()按价,示例如下
運(yùn)行結(jié)果如下:
從運(yùn)行結(jié)果可以知道惭适,經(jīng)過(guò)方法
JSON.stringify( )
,JSON對(duì)象轉(zhuǎn)換成字符串楼镐。
(2)toJSONString( )癞志,示例如下
var sJson=oJson.toJSONString( );
運(yùn)行結(jié)果與上一例子相同。
三框产、說(shuō)明
上面的多個(gè)要領(lǐng)中凄杯,除了eval()函數(shù)是js自帶的和jQuery.parseJSON( )之外,其他的多個(gè)要領(lǐng)都來(lái)自json.js包秉宿。