替换WCF默认JSON序列化
是否可以替换WCF的默认JSON序列化(我目前正在使用替换WCF默认JSON序列化,wcf,json,serialization,Wcf,Json,Serialization,是否可以替换WCF的默认JSON序列化(我目前正在使用webHttp行为进行测试),并将application/JSON作为MIME类型传递。特别是,我不喜欢默认情况下每个属性都是键/值对,如: {"Key":"PropertyName", "Value":"PropertyValue"} 我只对支持JSON的端点(使用jQuery+WCF请求数据)使用该服务。您可以使用消息格式化程序更改用于处理JSON的序列化程序。上的帖子展示了如何将默认序列化程序(DataContractJsonSeri
webHttp
行为进行测试),并将application/JSON
作为MIME类型传递。特别是,我不喜欢默认情况下每个属性都是键/值对,如:
{"Key":"PropertyName", "Value":"PropertyValue"}
我只对支持JSON的端点(使用jQuery+WCF请求数据)使用该服务。您可以使用消息格式化程序更改用于处理JSON的序列化程序。上的帖子展示了如何将默认序列化程序(DataContractJsonSerializer)更改为另一个序列化程序(JSON.NET)的示例。考虑创建与JSON对象结构对应的类。在这种情况下,您不必像以下那样使用
字典
:
[DataContract]
public class Customer
{
[DataMember(Name="name")]
public string Name{get;set;}
[DataMember(Name="id")]
public int ID{get;set;}
}
这将被序列化为:
{"name": "name-value", "id": "id-value"}
当然,这只是您已有的替代方案,可能不适用。谢谢Carlos。这并不容易,但我终于让它工作了。(我忘了contentTypeMapper:))精彩的博客文章。使支持json和XML格式变得超级容易,即使使用NewtonSoft的变体也是如此:看看这是否有帮助: