javascript json字符串到j(luò)son對(duì)象轉(zhuǎn)義問題
在使用JavaScriptSerializer.Serialize 方法轉(zhuǎn)json對(duì)象時(shí),遇到一個(gè)問題,后臺(tái)方法生成的json字符串中有沒有轉(zhuǎn)義的特殊字符代碼;
而這些特殊的代碼在使用javascript的轉(zhuǎn)json對(duì)象方法時(shí)報(bào)錯(cuò),為了講這個(gè)轉(zhuǎn)義的東西轉(zhuǎn)義過來,折騰了半天。著實(shí)對(duì)javascript無語;
后臺(tái)代轉(zhuǎn)的對(duì)象是
Dictionary<string,string> DepartmentsExistTaskCounts
前臺(tái)頁面使用的MVC里的razor 寫法,直接使用后臺(tái)方法把數(shù)據(jù)轉(zhuǎn)成JSON存在腳本變量里;
var jsonstr = "@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";
實(shí)際轉(zhuǎn)了之后,轉(zhuǎn)義的特殊字符已編碼形式出現(xiàn)了;
var jsonstr = "{"1":"0","2":"0","3":"0"}";
于是想替換掉這個(gè)",使用replace方法,結(jié)果以為replace會(huì)替換掉全部,一直找原因,最后一調(diào)試才發(fā)現(xiàn)這JavaScript的replace方法默認(rèn)只替換第一個(gè)!
真的是醉了。于是重新給String方法加上replaceAll方法。才弄好;
只想對(duì)javascpript說句,坑死個(gè)人。
前端部分截取腳本 :
<script type="text/javascript">
//擴(kuò)展javascript 的replace方法
String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);
}
var counts = parseInt("@(DepartmentCounts)");
var gDepartmentsAddCount = {};
var jsonstr = "@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";
jsonstr = jsonstr.replaceAll(""","'");
gDepartmentsAddCount = ToJson( jsonstr );
//JSon轉(zhuǎn)換
function ToJson(json) {
try { return eval(json); }
catch (e) {
try { return eval('(' + json + ')'); }
catch (e) {
//alert(json);
}
}
}
</script>總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
JavaScript設(shè)計(jì)模式經(jīng)典之命令模式
命令模式(Command)的定義是:用來對(duì)方法調(diào)用進(jìn)行參數(shù)化處理和傳送,經(jīng)過這樣處理過的方法調(diào)用可以在任何需要的時(shí)候執(zhí)行。接下來通過本文給大家介紹JavaScript設(shè)計(jì)模式經(jīng)典之命令模式,需要的朋友參考下2016-02-02
javascript實(shí)現(xiàn)滾動(dòng)效果的數(shù)字時(shí)鐘實(shí)例
這篇文章主要是介紹使用javascript來實(shí)現(xiàn)數(shù)字時(shí)鐘滾動(dòng)的效果,非常實(shí)用,有需要的朋友們可以來參考學(xué)習(xí)。2016-07-07
javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘的啟動(dòng)和停止
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘的啟動(dòng)和停止文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
JavaScript中常用的簡潔高級(jí)技巧總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于JavaScript中常用的簡潔高級(jí)技巧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Javascript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
JS中的回調(diào)函數(shù)(callback)講解
回調(diào)函數(shù)是一段可執(zhí)行的代碼段,它作為一個(gè)參數(shù)傳遞給其他的代碼,其作用是在需要的時(shí)候方便調(diào)用這段(回調(diào)函數(shù))代碼,這篇文章主要介紹了JS中的?回調(diào)函數(shù)(callback),需要的朋友可以參考下2022-12-12

