通过WCF服务在JSON输出中的URL格式不正确

时间:2010-11-03 19:29:42

标签: wcf json formatting

我的WCF服务合同定义如下:

[OperationContract]
    [WebGet(
        UriTemplate =
            "HubContent/{language}?apptype={appType}"
        ,
        ResponseFormat = WebMessageFormat.Json)]
    HubResults GetHubContent(string language, string appType);

在服务中实现此契约时,我返回一个在JSON中解析出来的对象列表。但是,只要对象的某个属性是URL或包含正斜杠的任何字符串,服务器在浏览器中返回的JSON就会转义正斜杠。所以这个网址: - http://www.example.com/test/site看起来像这样

http\/\/www.example.com\/test\/site.

我是否需要在与格式相关的合同中指定一些内容来纠正这个问题?

1 个答案:

答案 0 :(得分:5)

转义正斜杠是完全有效的JSON(参见http://json.org/,“字符串”构造)。例如,如果你通过了

{"myUrl":"http\/\/www.example.com\/test\/site"}

到任何JSON解析器(例如JavaScript“eval”函数),myUrl的值将为“http://www.example.com/test/site”(它将自动取消斜杠)。

或者我误解了你的问题?在这种情况下,您是否可以发布您认为已损坏的JSON示例?