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


Posted in Javascript onJanuary 22, 2019

在使用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方法
     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 相关文章推荐
Jquery下attr和removeAttr的使用方法
Dec 28 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
Aug 28 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
jQuery中prevAll()方法用法实例
Jan 08 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
javascript中利用柯里化函数实现bind方法
Apr 29 Javascript
Vue中使用vee-validate表单验证的方法
May 09 Javascript
nuxt.js 缓存实践
Jun 25 Javascript
Vue封装的可编辑表格插件方法
Aug 28 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
JS实现可以用键盘方向键控制的动画
Dec 11 Javascript
使用JavaScript保存文本文件到本地的两种方法
Jan 22 #Javascript
微信小程序实现九宫格抽奖
Apr 15 #Javascript
200行HTML+JavaScript实现年会抽奖程序
Jan 22 #Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 #Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 #Javascript
微信小程序全局变量功能与用法详解
Jan 22 #Javascript
微信小程序使用map组件实现路线规划功能示例
Jan 22 #Javascript
You might like
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php实现分页显示
2015/11/03 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
python实现可逆简单的加密算法
2019/03/22 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
儿媳婚宴答谢词
2014/01/14 职场文书
遗体告别仪式答谢词
2014/01/23 职场文书
工程招投标邀请书
2014/01/30 职场文书
爬山的活动方案
2014/08/16 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python