javascript json字符串到json对象转义问题

 更新时间:2019年01月22日 16:26:46   作者:chenqiangdage  
今天小编就为大家分享一篇关于javascript json字符串到json对象转义问题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

在使用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会替换掉全部,一直找原因,最后一调试才发现这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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • JavaScript设计模式经典之命令模式

    JavaScript设计模式经典之命令模式

    命令模式(Command)的定义是:用来对方法调用进行参数化处理和传送,经过这样处理过的方法调用可以在任何需要的时候执行。接下来通过本文给大家介绍JavaScript设计模式经典之命令模式,需要的朋友参考下
    2016-02-02
  • Javascript - HTML的request类

    Javascript - HTML的request类

    Javascript - HTML的request类...
    2007-01-01
  • javascript实现滚动效果的数字时钟实例

    javascript实现滚动效果的数字时钟实例

    这篇文章主要是介绍使用javascript来实现数字时钟滚动的效果,非常实用,有需要的朋友们可以来参考学习。
    2016-07-07
  • javascript实现动态时钟的启动和停止

    javascript实现动态时钟的启动和停止

    这篇文章主要为大家详细介绍了javascript实现动态时钟的启动和停止文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • js获取页面description的方法

    js获取页面description的方法

    这篇文章主要介绍了js获取页面description的方法,涉及javascript操作页面元素的相关技巧,需要的朋友可以参考下
    2015-05-05
  • js或css文件后面跟参数的原因说明

    js或css文件后面跟参数的原因说明

    经常看到不少导航网站测样式或js文件后面加了一些参数,主要是一你为一些并不经常更新的页面重新加载新修改的文件。
    2010-01-01
  • 利用ECharts.js画K线图的方法示例

    利用ECharts.js画K线图的方法示例

    这篇文章主要给大家介绍了关于利用ECharts.js画K线图的相关资料,,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • javascript处理table表格的代码

    javascript处理table表格的代码

    javascript 处理table表格的代码,学习js的朋友可以参考下。
    2010-12-12
  • JavaScript中常用的简洁高级技巧总结

    JavaScript中常用的简洁高级技巧总结

    这篇文章主要给大家总结介绍了关于JavaScript中常用的简洁高级技巧,文中通过示例代码介绍的非常详细,对大家的学习或者使用Javascript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • JS中的回调函数(callback)讲解

    JS中的回调函数(callback)讲解

    回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码,这篇文章主要介绍了JS中的 回调函数(callback),需要的朋友可以参考下
    2022-12-12

最新评论