2010-03-10 91 views
2

我正在升级正在使用jQuery 1.3.2以使用最新版本的jQuery(1.4.2)来使用WCF数据服务(又名ADO.NET数据服务,a.k.a. Astoria)的应用程序。我的应用程序现在失败了,因为JSON解析错误,因为jQuery 1.4现在使用更严格的JSON解析。WCF数据服务是否返回无效的JSON?

我已经运行了由我的数据服务通过各种JSON验证器返回的JSON,并且这个问题似乎与URI字符串中的单引号转义有关。我的JSON如下所示:

{ 
    "d" : { 
     "__metadata": { 
      "uri": "http://foo.com/Services/Foo.svc/Foos(guid\'g17a49d5-fd66-4b2d-bd5f-e6245ec3e268\')" } } } 

(我已经修改了它删除不必要的信息。)

分析错误与“\”逃逸单引号。如果我删除转义字符,JSON会干净地解析。

有没有人有这个问题,并有修复或解决?

谢谢。

回答

2

这是.NET 3.5 SP1中的数据服务中的一个错误&后续更新。该问题将在.NET 4.0发行版中解决。

+0

感谢您的回应,迈克。我通过让代码恢复到jQuery在1.4之前使用的基于eval的JSON解析方法,解决了这个问题。一旦将应用程序移至.NET 4.0,我将期待撤消这一更改。 – 2010-03-11 20:04:22

+0

.NET 3.5(用于.NET Framework 3.5 SP1的ADO.NET数据服务更新 - 刷新)存在此问题的热修复。看到这个:http://blogs.msdn.com/b/astoriateam/archive/2010/05/08/ado-net-data-services-update-for-net-framework-3-5-sp1-refresh.aspx – Kamarey 2011-11-10 09:49:57