是否可以替换WCF的默认JSON序列化(我目前正在使用webHttp
行为进行测试),并将application/json
作为MIME类型传递。特别是,我不喜欢默认情况下每个属性都是键/值对,如:
{"Key":"PropertyName", "Value":"PropertyValue"}
我只在启用JSON的端点上使用该服务(使用jQuery + WCF请求数据)。
答案 0 :(得分:11)
您可以使用消息格式化程序更改用于处理JSON的序列化程序。 http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx上的帖子显示了如何将默认序列化程序(DataContractJsonSerializer)更改为另一个(JSON.NET)的示例。
答案 1 :(得分:-1)
考虑创建与JSON对象结构相对应的类。在这种情况下,您不必使用Dictionary<>
,如:
[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"}
当然,这只是您已有的替代品,可能不适用。