Web服务和DataContractJsonSerializer:处理字典

时间:2018-10-12 14:38:46

标签: web-services dictionary serialization json.net datacontractserializer

我正在iis + asp.net上构建Web服务,并且遇到了有关JSON序列化的问题。 使用JSON.Net或JavaScriptSerializer时,字典序列化为

{
 'key0':'value0',
 ...
 'keyN':'valueN',
}

但是当它通过“ ASP反序列化器”时,字典会像这样被序列化

[
 {Key:'key0',Value:'value0'},
 ...
 {Key:'keyN',Value:'valueN'}
]

我对ASP.net Web服务不熟悉,因此我使用了现成的Visual Studio模板。 当我在web.config中查看时,我看到了端点和行为的定义。在其中一种行为中,我看到有对dataContractSerializer的引用。 这似乎是反序列化时在后台使用的串行器。

所以我的问题是:

  • 可以对dataContractSerializer进行调整以序列化合理的方式吗 (通过在网络配置中使用指令)?

  • 我可以为端点中的端点设置另一个序列化器(JSON.net吗?) web.config?

我的方法当前输出一个Dictionary,我对其进行更改以返回一个字符串(该字符串以我自己的字典序列化提供)。但这并没有多大帮助,因为该字符串被默认的序列化程序转义了,该序列化程序将其用'“'括起来。

我可以覆盖吗?通过直接写到响应并结束响应?

请帮助我,我-真的-不想更改现有客户端,因此需要在服务器端进行操作。

0 个答案:

没有答案