我的 WCF 服务契约(Contract)定义如下:
[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.
我是否需要在契约(Contract)中指定与格式相关的内容以纠正此问题?
最佳答案
转义正斜杠是完全有效的 JSON(请参阅 http://json.org/,“字符串”结构)。例如,如果您通过
{"myUrl":"http\/\/www.example.com\/test\/site"}
对于任何 JSON 解析器(例如 JavaScript“eval”函数),myUrl 的值将为“http://www.example.com/test/site ”(它将自动转义斜杠)。
或者我误解了你的问题?在这种情况下,您可以发布一个您认为损坏的 JSON 示例吗?
关于wcf - 通过 WCF 服务的 JSON 输出中的 URL 格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090877/