第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

與Prototype.js的JSON.stringify()數(shù)組奇異性

與Prototype.js的JSON.stringify()數(shù)組奇異性

與Prototype.js的JSON.stringify()數(shù)組奇異性我正在試圖找出我的json序列化出了什么問(wèn)題,使用我的應(yīng)用程序的當(dāng)前版本和舊版本,并且在JSON.stringify()的工作方式中發(fā)現(xiàn)了一些令人驚訝的差異(使用來(lái)自json.org的JSON庫(kù)) )。在我的應(yīng)用程序的舊版本中: JSON.stringify({"a":[1,2]})給了我這個(gè);"{\"a\":[1,2]}"在新版本中, JSON.stringify({"a":[1,2]})給了我這個(gè);"{\"a\":\"[1, 2]\"}"任何想法可以改變什么使相同的庫(kù)在新版本的數(shù)組括號(hào)周?chē)胖靡?hào)?
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

ECMAScript 5及更高版本(第201頁(yè) - JSON對(duì)象,偽代碼頁(yè)面205)中定義的函數(shù)JSON.stringify()在對(duì)象上可用時(shí)使用函數(shù)toJSON()。

因?yàn)镻rototype.js(或您正在使用的另一個(gè)庫(kù))定義了一個(gè)Array.prototype.toJSON()函數(shù),所以首先使用Array.prototype.toJSON()然后使用JSON.stringify()引用的字符串將數(shù)組轉(zhuǎn)換為字符串,因此數(shù)組周?chē)囊?hào)不正確。

因此,解決方案是直截了當(dāng)且簡(jiǎn)單的(這是Raphael Schweikert答案的簡(jiǎn)化版本):

delete Array.prototype.toJSON

這產(chǎn)生了對(duì)依賴(lài)于數(shù)組的toJSON()函數(shù)屬性的庫(kù)的副作用。但考慮到與ECMAScript 5的不兼容性,我發(fā)現(xiàn)這是一個(gè)小小的不便。

必須注意的是,ECMAScript 5中定義的JSON對(duì)象在現(xiàn)代瀏覽器中有效實(shí)現(xiàn),因此最佳解決方案是符合標(biāo)準(zhǔn)并修改現(xiàn)有庫(kù)。


查看完整回答
反對(duì) 回復(fù) 2019-08-27
?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

一個(gè)不會(huì)影響其他Prototype依賴(lài)的可能解決方案是:

var _json_stringify = JSON.stringify;JSON.stringify = function(value) {
    var _array_tojson = Array.prototype.toJSON;
    delete Array.prototype.toJSON;
    var r=_json_stringify(value);
    Array.prototype.toJSON = _array_tojson;
    return r;};

這會(huì)處理與JSON.stringify不兼容的Array toJSON,并且還會(huì)保留toJSON功能,因?yàn)槠渌鸓rototype庫(kù)可能依賴(lài)于它。


查看完整回答
反對(duì) 回復(fù) 2019-08-27
  • 3 回答
  • 0 關(guān)注
  • 524 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)