溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript json字符串到json對象轉義問題

發(fā)布時間:2020-09-03 01:39:30 來源:腳本之家 閱讀:203 作者:chenqiangdage 欄目:web開發(fā)

在使用JavaScriptSerializer.Serialize 方法轉json對象時,遇到一個問題,后臺方法生成的json字符串中有沒有轉義的特殊字符代碼;

而這些特殊的代碼在使用javascript的轉json對象方法時報錯,為了講這個轉義的東西轉義過來,折騰了半天。著實對javascript無語; 

后臺代轉的對象是

Dictionary<string,string> DepartmentsExistTaskCounts

前臺頁面使用的MVC里的razor 寫法,直接使用后臺方法把數據轉成JSON存在腳本變量里;

var jsonstr  = "@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";

實際轉了之后,轉義的特殊字符已編碼形式出現了;

var jsonstr  = "{&quot;1&quot;:&quot;0&quot;,&quot;2&quot;:&quot;0&quot;,&quot;3&quot;:&quot;0&quot;}";

于是想替換掉這個&quot;,使用replace方法,結果坑爹以為replace會替換掉全部,一直找原因,最后一調試才發(fā)現這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>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI