我的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.
我是否需要在与格式相关的合同中指定一些内容来纠正这个问题?
答案 0 :(得分:5)
转义正斜杠是完全有效的JSON(参见http://json.org/,“字符串”构造)。例如,如果你通过了
{"myUrl":"http\/\/www.example.com\/test\/site"}
到任何JSON解析器(例如JavaScript“eval”函数),myUrl的值将为“http://www.example.com/test/site”(它将自动取消斜杠)。
或者我误解了你的问题?在这种情况下,您是否可以发布您认为已损坏的JSON示例?