当前位置: 首页 > 编程笔记 >

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

盖翰池
2023-03-14
本文向大家介绍javascript json字符串到json对象转义问题,包括了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>

总结

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

 类似资料:
  • 我正在开发一个Android应用程序。在我的应用程序中,我必须将字符串转换为JSON对象,然后解析值。我检查了Stackoverflow中的解决方案,并在这里的链接中发现了类似的问题 解决办法是这样的

  • 问题内容: 我从公共API接收到一个JSON对象,该对象本身具有一个转义的JSON字符串。 我如何将此属性转换为实际的JSON对象(未转义),以便使用NewtonSoft Json.NET反序列化整个响应? 问题答案: 这是我根据 Sam 的答案使用的可行解决方案:

  • 问题内容: 我正在开发一个Android应用程序。在我的应用程序中,我必须将字符串转换为Json Object,然后解析值。我检查了stackoverflow中的解决方案,并在此处找到了类似的问题链接 解决方案是这样的 我在代码中使用相同的方式。我的绳子是 替换后,我得到了这样的结果 当我执行 我收到以下json异常 请帮助我解决我的问题。 问题答案: 删除斜杠:

  • 我有一个Java程序,它将动态地为ElasticSearch构建一些参数的查询。目前,我构建这个的方式逃脱了字符串,因为JsonObject作为Google GSON库的一部分需要传递一个字符串来附加JSON。 以下方法的输出如下: 如您所见,存在的值是转义,ElasticSearch对此提出了一个合适的建议。如果没有转义字符串,我如何实现这个结果? 下面是< code > buildFilter

  • 问题内容: 我正在使用JS对象通过Google可视化创建图形。我正在尝试设计数据源。首先,我创建了一个JS对象客户端。 现在,我需要动态获取数据。因此,我将AJAX请求发送到返回JSON字符串的页面: 我将其保存到变量中: 并显示为 现在,我的任务是从该字符串创建一个JS对象。这是行不通的。当我使用JS对象时,一切工作正常,并且能够获得所需的图形。现在,如果我尝试从警报消息中确认的来自AJAX请求

  • 问题内容: 将字符串表示形式转换为对象,但我要相反。对象要转换为JSON字符串,我有一个链接http://www.devcurry.com/2010/03/convert- javascript-object-to-json.html, 但是它需要json2.js jQuery是否具有本机功能方法来做到这一点? 问题答案: jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查。如果不可用