javascript json字符串到json對象轉義問題
在使用JavaScriptSerializer.Serialize 方法轉json對象時,遇到一個問題,后臺方法生成的json字符串中有沒有轉義的特殊字符代碼;
而這些特殊的代碼在使用javascript的轉json對象方法時報錯,為了講這個轉義的東西轉義過來,折騰了半天。著實對javascript無語;
后臺代轉的對象是
Dictionary<string,string> DepartmentsExistTaskCounts
前臺頁面使用的MVC里的razor 寫法,直接使用后臺方法把數(shù)據(jù)轉成JSON存在腳本變量里;
var jsonstr = "@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";
實際轉了之后,轉義的特殊字符已編碼形式出現(xiàn)了;
var jsonstr = "{"1":"0","2":"0","3":"0"}";
于是想替換掉這個",使用replace
方法,結果以為replace會替換掉全部,一直找原因,最后一調試才發(fā)現(xiàn)這JavaScript的replace方法默認只替換第一個!
真的是醉了。于是重新給String方法加上replaceAll
方法。才弄好;
只想對javascpript說句,坑死個人。
前端部分截取腳本 :
<script type="text/javascript"> //擴展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轉換 function ToJson(json) { try { return eval(json); } catch (e) { try { return eval('(' + json + ')'); } catch (e) { //alert(json); } } } </script>
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
詳解如何構建Promise隊列實現(xiàn)異步函數(shù)順序執(zhí)行
這篇文章主要介紹了詳解如何構建Promise隊列實現(xiàn)異步函數(shù)順序執(zhí)行,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10javascript實現(xiàn)的動態(tài)添加表單元素input,button等(appendChild)
這篇文章給大家介紹了javascript實現(xiàn)的動態(tài)添加表單元素input,button等(appendChild)的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2007-11-11form表單中去掉默認的enter鍵提交并綁定js方法實現(xiàn)代碼
form表單中默認的enter提交是不是讓你已經(jīng)很耐煩了吧,本文主要講解一下如何去掉默認的enter鍵提交同時綁定js方法,感興趣的朋友可以參考下哈2013-04-04Bootstrap-table自定義可編輯每頁顯示記錄數(shù)
這篇文章主要介紹了Bootstrap-table自定義可編輯每頁顯示記錄數(shù)的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09