1、什么是JSON?
JSON(JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript 規(guī)范的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。 易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。這是百度百科給出的JSON的定義。
我理解的JSON是JS創(chuàng)建對(duì)象的一種方法,后來從JS中獨(dú)立出來,作為一種字符串?dāng)?shù)據(jù)的表示法,被各種語(yǔ)言支持;相對(duì)于XML而言,比XML更加輕量級(jí)、簡(jiǎn)潔、處理速度更快;
2、JSON的兩種格式:
JSON對(duì)象字符串格式:'{"key1":"value1","key2":"value2"}'
JSON數(shù)組字符串格式:'[value1,value2,value3,...]'
3、JSON 與 JS 對(duì)象的關(guān)系:
JSON 是 JS 對(duì)象的字符串表示法,它使用文本表示一個(gè) JS 對(duì)象的信息,本質(zhì)是一個(gè)字符串。
var obj = {a: 'Hello', b: 'World'}; //這是一個(gè)對(duì)象,注意鍵名也是可以使用引號(hào)包裹的
var json = '{"a": "Hello", "b": "World"}'; //這是一個(gè) JSON 字符串,本質(zhì)是一個(gè)字符串
4、JSON 和 JS 對(duì)象互轉(zhuǎn)
瀏覽器提供的方法:
要實(shí)現(xiàn)從JS對(duì)象轉(zhuǎn)換為 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //結(jié)果是 '{"a": "Hello", "b": "World"}'
要實(shí)現(xiàn)從 JSON 轉(zhuǎn)換為JS對(duì)象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //結(jié)果是 {a: 'Hello', b: 'World'}
注:ie8(兼容模式),ie7和ie6沒有JSON對(duì)象,推薦采用JSON官方的方式,引入json.js
jquery提供的方法 :
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字符串轉(zhuǎn)換成json對(duì)象
Javascript提供的方法:
eval('(' + jsonstr + ')'); //可以將json字符串轉(zhuǎn)換成json對(duì)象,注意需要在json字符外包裹一對(duì)小括號(hào)
注:ie8(兼容模式),ie7和ie6也可以使用eval()將字符串轉(zhuǎn)為JSON對(duì)象,但不推薦這些方式,這種方式不安全eval會(huì)執(zhí)行json串中的表達(dá)式。
以上這篇Ajax 接收服務(wù)器返回的json響應(yīng)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- ajax響應(yīng)json字符串和json數(shù)組的實(shí)例(詳解)
- Node.js如何響應(yīng)Ajax的POST請(qǐng)求并且保存為JSON文件詳解
- 原生JS實(shí)現(xiàn)Ajax跨域請(qǐng)求flask響應(yīng)內(nèi)容
- Js中使用hasOwnProperty方法檢索ajax響應(yīng)對(duì)象的例子
- 原生javascript的ajax請(qǐng)求及后臺(tái)PHP響應(yīng)操作示例
- 在AngularJs中設(shè)置請(qǐng)求頭信息(headers)的方法及不同方法的比較
- selenium設(shè)置proxy、headers的方法(phantomjs、Chrome、Firefox)
- node.js中的http.response.getHeader方法使用說明
- node.js中的http.response.setHeader方法使用說明
- node.js中的http.response.removeHeader方法使用說明
- js 使用ajax設(shè)置和獲取自定義header信息的方法小結(jié)