Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换WCF默认JSON序列化_Wcf_Json_Serialization - Fatal编程技术网

替换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

是否可以替换WCF的默认JSON序列化(我目前正在使用
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的变体也是如此:看看这是否有帮助: