黑马程序员技术交流社区

标题: 当Json里面的值含有:的时候会报错,这个问题怎么解决啊? [打印本页]

作者: 马谦    时间: 2013-11-2 20:52
标题: 当Json里面的值含有:的时候会报错,这个问题怎么解决啊?
本帖最后由 马谦 于 2013-11-3 20:11 编辑

当Json里面的值含有:的时候会报错,这个问题怎么解决啊?

作者: hourglass    时间: 2013-11-2 21:57
如果值是字符串是不会报错的,贴个代码看看吧
作者: 马谦    时间: 2013-11-3 13:41
hourglass 发表于 2013-11-2 21:57
如果值是字符串是不会报错的,贴个代码看看吧

这个是客户端的,值里面如果有半角:就会报错,很难整,换行符也一样,我整了半天都没搞明白,最后还是不用json解决的
作者: hourglass    时间: 2013-11-3 14:43
不知道你是在什么情况下使用JSON的, 下面是我在mvc3里面使用的例子,能够接受到包含":"的值
客户端:
  1. </script>
  2. <script type="text/javascript">
  3.     $(function () {
  4.         var data = new Object();
  5.         data.msg = "new:message";
  6.         var ajaxData = JSON.stringify(data);
  7.         $.ajax({
  8.             type: "post",
  9.             url: "Home/Count",
  10.             dataType: "json",
  11.             contentType: "application/json: charset=utf-8",
  12.             data: ajaxData,
  13.             beforesend: function () { },
  14.             success: function (context, textStatus) {
  15.                 if (context.Result == "Success") {
  16.                     alert(context.Message);
  17.                 }
  18.             },
  19.             Error: function () {
  20.                 alert("ajax错误");
  21.             },
  22.         });
  23.     });
  24. </script>
复制代码
服务端:
  1. [HttpGet]
  2. public ViewResult Count()
  3. {
  4.     return View();
  5. }
  6. [HttpPost]
  7. public JsonResult Count(string msg)
  8. {
  9.     return Json(new { Result = "Success", Message = "OK:Sure" });
  10. }
复制代码
获取数据截图:


你报错的信息是什么呢?

作者: 马谦    时间: 2013-11-3 20:08
我用的是jquery的getJSON获取数据,不报错,但是得不到结果,里面还有换行符和: 都不行,无奈之下在服务端用%%%连起来,再到客户端分隔,这样就没问题,
作者: 马谦    时间: 2013-11-3 20:10
hourglass 发表于 2013-11-3 14:43
不知道你是在什么情况下使用JSON的, 下面是我在mvc3里面使用的例子,能够接受到包含":"的值
客户端:服务 ...

问题解决了,结贴了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2