WCF 数据服务是否返回无效的 JSON?
我正在升级一个使用 jQuery 1.3.2 来使用 WCF 数据服务(又名 ADO.NET 数据服务,又名 Astoria)的应用程序,以使用最新版本的 jQuery (1.4.2)。我的应用程序现在失败,出现 JSON 解析错误,因为 jQuery 1.4 现在使用更严格的 JSON 解析。
我已通过各种 JSON 验证器运行数据服务返回的 JSON,问题似乎与 URI 字符串中的单引号转义有关。我的 JSON 如下所示:(
{
"d" : {
"__metadata": {
"uri": "http://foo.com/Services/Foo.svc/Foos(guid\'g17a49d5-fd66-4b2d-bd5f-e6245ec3e268\')" } } }
我已对其进行修改以删除不必要的信息。)
解析错误在于单引号的 '\' 转义。如果我删除转义字符,JSON 就会清晰地解析。
有没有人遇到过这个问题,并且有解决办法或解决方法?
谢谢。
I'm upgrading an application that was using jQuery 1.3.2 to consume a WCF Data Service (a.k.a. ADO.NET Data Services, a.k.a. Astoria) to use the latest version of jQuery (1.4.2). My application is now failing, with JSON parsing errors, because jQuery 1.4 now uses stricter JSON parsing.
I've run the JSON returned by my data service through various JSON validators, and the problem seems to be related to single-quote escaping in URI strings. My JSON looks like the following:
{
"d" : {
"__metadata": {
"uri": "http://foo.com/Services/Foo.svc/Foos(guid\'g17a49d5-fd66-4b2d-bd5f-e6245ec3e268\')" } } }
(I've modified it to remove unnecessary information.)
The parsing error is with the '\' escaping of single-quotes. If I remove the escape character, the JSON parses cleanly.
Has anyone had this problem, and have a fix or a work-around?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是 .NET 3.5 SP1 和 .NET 3.5 SP1 中数据服务中的一个错误。后续更新。该问题将在 .NET 4.0 版本中得到修复。
This is a bug in data services in .NET 3.5 SP1 & subsequent update. The issue will be fixed in the in .NET 4.0 release.