替换WCF默认的JSON序列化

时间:2011-07-22 16:05:58

标签: wcf json serialization

是否可以替换WCF的默认JSON序列化(我目前正在使用webHttp行为进行测试),并将application/json作为MIME类型传递。特别是,我不喜欢默认情况下每个属性都是键/值对,如:

{"Key":"PropertyName", "Value":"PropertyValue"}

我只在启用JSON的端点上使用该服务(使用jQuery + WCF请求数据)。

2 个答案:

答案 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"}

当然,这只是您已有的替代品,可能不适用。