为什么可以在WCF DataService中发送以下JSON字符串:
{ SomeElement: 'val1', SomeOtherElement: 'val2' }
当你必须发送像
这样的普通WCF服务时[OperationContract,
WebInvoke (Method = "POST",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
public string SomeMehtod(string SomeElement, string SomeOtherElement)
以下JSON字符串
{ "SomeElement": "val1", "SomeOtherElement": "val2" }
这种不一致对我来说并不清楚。为什么我必须在普通的Web服务中使用双引号,而我可以省略WCF数据服务中元素名称的引号?
也许somone知道答案......
答案 0 :(得分:0)
我对WCF的JSON解析基础架构背后的内部管道非常熟悉,基本上,处理第二种情况的管道实际上是为了支持“严格”标准投诉JSON。
巧合的是,第一种情况适用于不合规的JSON。不要读它。这不是一个有意识的设计决定。希望这可以解决困惑!
有关更多详细信息,您可以使用Reflector探索DataContractJsonSerializerOperationFormatter,DataContractJsonSerializerOperationBehavior和DataContractJsonSerializer。