javascriptjson字符串到json对象转义问题
在使⽤JavaScriptSerializer.Serialize ⽅法转json对象时,遇到⼀个问题,后台⽅法⽣成的json字符串中有没有转义的特殊字符代码;
⽽这些特殊的代码在使⽤javascript的转json对象⽅法时报错,为了讲这个转义的东西转义过来,折腾了半天。着实对javascript⽆语;
后台代转的对象是
Dictionary<string,string> DepartmentsExistTaskCounts
前台页⾯使⽤的MVC⾥的razor 写法,直接使⽤后台⽅法把数据转成JSON存在脚本变量⾥;
var jsonstr  = "@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";
实际转了之后,转义的特殊字符已编码形式出现了;
var jsonstr  = "{"1":"0","2":"0","3":"0"}";
于是想替换掉这个",使⽤replace⽅法,结果坑爹以为replace会替换掉全部,⼀直原因,最后⼀调试才
发现这JavaScript的replace⽅法默认只替换第⼀个!
真的是醉了。于是重新给String⽅法加上replaceAll⽅法。才弄好;
只想对javascpript说句,坑死个⼈。
前端部分截取脚本:
<script type="text/javascript">
//扩展javascript 的replace⽅法
placeAll = function(s1,s2){
place(new RegExp(s1,"gm"),s2);
}
var counts = parseInt("@(DepartmentCounts)");
var gDepartmentsAddCount = {};
var jsonstr = "@(JSONHelper.ObjectToJSON(DepartmentsExistTaskCounts))";
jsonstr = placeAll(""","'");
gDepartmentsAddCount = ToJson( jsonstr );前台字符串截取
//JSon转换
function ToJson(json) {
try { return eval(json); }
catch (e) {
try { return eval('(' + json + ')'); }
catch (e) {
//alert(json);
}
}
}
</script>
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果你想了解更多相关内容请查看下⾯相关链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。