javascript json字符串到json对象转义问题
在使用JavaScriptSerializer.Serialize方法转json对象时,遇到一个问题,后台方法生成的json字符串中有没有转义的特殊字符代码;
而这些特殊的代码在使用javascript的转json对象方法时报错,为了讲这个转义的东西转义过来,折腾了半天。着实对javascript无语;
后台代转的对象是
Dictionary
前台页面使用的MVC里的razor写法,直接使用后台方法把数据转成JSON存在脚本变量里;
varjsonstr ="@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";
实际转了之后,转义的特殊字符已编码形式出现了;
varjsonstr ="{"1":"0","2":"0","3":"0"}";
于是想替换掉这个",使用replace方法,结果坑爹以为replace会替换掉全部,一直找原因,最后一调试才发现这JavaScript的replace方法默认只替换第一个!
真的是醉了。于是重新给String方法加上replaceAll方法。才弄好;
只想对javascpript说句,坑死个人。
前端部分截取脚本 :
//扩展javascript的replace方法 String.prototype.replaceAll=function(s1,s2){ returnthis.replace(newRegExp(s1,"gm"),s2); } varcounts=parseInt("@(DepartmentCounts)"); vargDepartmentsAddCount={}; varjsonstr="@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))"; jsonstr=jsonstr.replaceAll(""","'"); gDepartmentsAddCount=ToJson(jsonstr); //JSon转换 functionToJson(json){ try{returneval(json);} catch(e){ try{returneval('('+json+')');} catch(e){ //alert(json); } } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。