最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Chrome中JSON.parse的特殊實(shí)現(xiàn)

 更新時(shí)間:2011年01月12日 17:26:42   作者:  
ECMA 262 Edition5 中提供了原生的JSON支持,其中JSON.parse用來(lái)將字符串轉(zhuǎn)成成json,見(jiàn)ECMA 262 Edition5 15.12.2。另見(jiàn):字符串轉(zhuǎn)換成json的三種方式
IE8/Firefox3.5+/Chrome4/Safari4/Opera10 已實(shí)現(xiàn)該方法。使用方式很簡(jiǎn)單:
復(fù)制代碼 代碼如下:

var str = '{"name":"jack"}';
var json = JSON.parse(str);
alert(json.name);

在以上實(shí)現(xiàn)該方法的瀏覽器中都會(huì)彈出“jack”。
如果給Object.prototype添加一個(gè)解析json的方法(某人可能會(huì)強(qiáng)烈反對(duì)這么干污染了原生對(duì)象,這里純粹為了討論)
復(fù)制代碼 代碼如下:

Object.prototype.parseJSON = function () {
return JSON.parse(this);
}

因?yàn)樗械膶?duì)象都繼承了Object的方法,這時(shí)候可以直接這么用了,
復(fù)制代碼 代碼如下:

var str = '{"name":"jack"}';
var json = str.parseJSON();
alert(json.name);

str.parseJSON()時(shí),parseJSON內(nèi)部的this就指向了str。這時(shí)候并非所有瀏覽器都能解析成功。

IE8/Firefox/Safari/Opera仍然會(huì)彈出“jack”,Chrome中則報(bào)錯(cuò)了:Uncaught illegal access。
為什么這樣寫Chrome就不支持呢?比較兩種方式,傳給JSON.parse的參數(shù)一個(gè)是字符串str,一個(gè)是this。貌似這兩個(gè)沒(méi)區(qū)別?
當(dāng)str.parseJSON()時(shí),parseJSON內(nèi)部的this指向了應(yīng)該就是str。修改下parseJSON方法:
復(fù)制代碼 代碼如下:

Object.prototype.parseJSON = function () {
alert(typeof this);
return JSON.parse(this);
};

重新執(zhí)行,可以發(fā)現(xiàn)parseJSON彈出的是object,可能這就是區(qū)別了。直接new一個(gè)字符串就能看到明顯的效果了
復(fù)制代碼 代碼如下:

var js = JSON.parse(new String('{"name":"jack"}'));
alert(js.name);

以上代碼除Chrome報(bào)錯(cuò)外,其它瀏覽器均執(zhí)行正常。
基本得出結(jié)論:
Chrome中,JSON.parse的第一個(gè)參數(shù)只能是字符串,不能是對(duì)象(包括new String方式也不支持)
再回到上面給Object.prototype添加一個(gè)解析json的方法,如果要兼容所有瀏覽器,可以這么寫:
復(fù)制代碼 代碼如下:

Object.prototype.parseJSON = function () {
return JSON.parse(this.toString());
}
var str = '{"name":"jack"}';
var json = str.parseJSON();
alert(json.name);

2010-10-09 : 該BUG在Chrome6中已經(jīng)修復(fù).

相關(guān)文章

  • 解決json日期格式問(wèn)題的3種方法

    解決json日期格式問(wèn)題的3種方法

    這篇文章主要介紹了解決json日期格式問(wèn)題的3種方法 ,需要的朋友可以參考下
    2014-02-02
  • js中將字符串轉(zhuǎn)換成json的三種方式

    js中將字符串轉(zhuǎn)換成json的三種方式

    使用ajax的開(kāi)發(fā)項(xiàng)目過(guò)程中,經(jīng)常需要將json格式的字符串返回到前端,前端解析成js對(duì)象(JSON )。
    2011-01-01
  • 一篇了解JSON與數(shù)據(jù)存儲(chǔ)基礎(chǔ)知識(shí)

    一篇了解JSON與數(shù)據(jù)存儲(chǔ)基礎(chǔ)知識(shí)

    這篇文章主要介紹了JSON與數(shù)據(jù)存儲(chǔ)基礎(chǔ)知識(shí),本篇文章較為基礎(chǔ),但非常詳細(xì),可以很好的理解JSON和數(shù)據(jù)存儲(chǔ),,需要的朋友可以參考下
    2023-01-01
  • json數(shù)據(jù)傳到前臺(tái)并解析展示成列表的方法

    json數(shù)據(jù)傳到前臺(tái)并解析展示成列表的方法

    今天小編就為大家分享一篇json數(shù)據(jù)傳到前臺(tái)并解析展示成列表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • json簡(jiǎn)單介紹

    json簡(jiǎn)單介紹

    我們知道AJAX技術(shù)能夠使得每一次請(qǐng)求更加迅捷,對(duì)于每一次請(qǐng)求返回的不是整個(gè)頁(yè)面,也僅僅是所需要返回的數(shù)據(jù)。
    2008-06-06
  • JSONP 跨域共享信息

    JSONP 跨域共享信息

    JSONP(JSON with Padding)是資料格式 JSON 的一種“使用模式”,可以讓網(wǎng)頁(yè)從別的網(wǎng)域要資料。另一個(gè)解決這個(gè)問(wèn)題的新方法是跨來(lái)源資源共享
    2012-08-08
  • JSONP之我見(jiàn)

    JSONP之我見(jiàn)

    本文主要向大家介紹了個(gè)人對(duì)于jsonp的理解,jsonp的概念,跨域問(wèn)題,以及jsonp與XMLHttpRequest的區(qū)別,由于本人也是javascript的初學(xué)者,難免會(huì)有些不當(dāng)之處,還請(qǐng)指正,謝謝。
    2015-03-03
  • JSON 學(xué)習(xí)之JSON in JavaScript詳細(xì)使用說(shuō)明

    JSON 學(xué)習(xí)之JSON in JavaScript詳細(xì)使用說(shuō)明

    只需要在前臺(tái)頁(yè)面中引入相應(yīng)的javascript即可測(cè)試
    2010-02-02
  • 父子窗體間傳遞JSON格式的數(shù)據(jù)的代碼

    父子窗體間傳遞JSON格式的數(shù)據(jù)的代碼

    在開(kāi)發(fā)的項(xiàng)目中,遇到這樣一個(gè)例子:當(dāng)用戶選擇某一個(gè)用戶名時(shí),彈出當(dāng)前用戶的評(píng)分卷,該評(píng)分卷列出了所有一級(jí)評(píng)分項(xiàng),讓用戶進(jìn)行評(píng)分操作。
    2010-12-12
  • 什么是json和jsonp,jQuery json實(shí)例詳詳細(xì)說(shuō)明

    什么是json和jsonp,jQuery json實(shí)例詳詳細(xì)說(shuō)明

    JSON能夠以非常簡(jiǎn)單的方式來(lái)描述數(shù)據(jù)結(jié)構(gòu),XML能做的它都能做,因此在跨平臺(tái)方面兩者完全不分伯仲.其實(shí)網(wǎng)上關(guān)于JSONP的講解有很多,但卻千篇一律,用自己的方式來(lái)闡釋一下這個(gè)問(wèn)題,看看是否有幫助
    2012-12-12

最新評(píng)論

灵山县| 乐陵市| 海阳市| 山阴县| 阳江市| 乌什县| 海阳市| 万盛区| 瑞安市| 嘉禾县| 花垣县| 保定市| 四子王旗| 和田市| 钟山县| 寻甸| 射洪县| 潞城市| 牡丹江市| 虞城县| 阿拉尔市| 博乐市| 吴忠市| 南陵县| 浦江县| 保靖县| 兴国县| 阿鲁科尔沁旗| 万载县| 福鼎市| 乐东| 米泉市| 醴陵市| 徐水县| 保康县| 玛多县| 上林县| 中卫市| 湖北省| 蛟河市| 大荔县|