我正在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进行调整以序列化合理的方式(通过使用Web配置中的指令)?

  • 我可以在web.config中为端点设置另一个Serializer(JSON.net吗?)?

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

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

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

  ask by frenchone translate from so

本文未有回复,本站智能推荐:

1回复

DataContractSerializer反序列化枚举字典(和double)

我正在尝试将XML反序列化为对象。 对象和xml如下所示: 物体... 枚举: 但是,在使用以下代码进行反序列化时,它会引发“已添加具有相同键的项”。 任何想法?
1回复

如何让JsonSerialize忽略字典键

我正在尝试序列化一个类中的字典,并且即使我将ProcessDictionaryKeys参数提供为 false, CustomAttributes字典中的键也会被格式化。 我添加了[JsonProperty]如下所示: 我的 CustomAttributes 数据如下所示: 生成的 JSON 如下所示
1回复

Json.Net映射到字典或其他

鉴于这个杰森: 并给出以下类别: 是否有可能(以及如何?)将json对象反序列化为给定的类? 还是将json对象映射到另一个结构类的最佳方法? 先感谢您。
1回复

将JSON文件序列化为类和字典

我的类结构是固定的,但是对象变量(属性)不是固定的。 这些数据是可配置的。 我正在用字典创建一个类,但是它不起作用。 对于前。 对于这些JSON结构,我们创建了以下类结构。 但它不起作用。 序列化后的字典不包含任何值。
1回复

使用Newtonsoft在驼峰式字典中使用字典密钥的Json序列化的奇怪行为

我正在使用Newtonsoft CamelCasePropertyNamesContractResolver将对象序列化为json。 我看到字典键的奇怪的属性名称转换。 为什么要更改密钥DEMO => demo但DEMO Long => demO Long (大写O而不是小o)
2回复

Json.NET无法序列化集合字典

我正在尝试序列化(稍后反序列化) Dictionary<string, ISet<string>> 。 不幸的是,Json.NET(通过NuGet的v6.0.3)无法做到这一点。 我要做的是 变量json然后保存字符串 现在我想用反序列化字符串 由于无法找
3回复

如何序列化字典JSON,但忽略密钥

我有以下课程财产 当我序列化为JSON时,字典密钥将按以下方式序列化: } 是否有可能以某种方式删除类属性属性? “ 9036”: 因此所需的JSON变为
2回复

C#JSON反序列化字典异常

我需要有关C#中JSON解析的帮助。 我正在尝试解析和使用我的JSON字符串。 我不想创建一个实例化该对象的类,因为可能会有更多带有许多返回对象类型的调用,例如锦标赛,团队,用户等。 我正在使用JSON.net库解析JSON字符串,这是我在程序中使用的C#代码: 解析存在此问题: