веб-сервис и DataContractJsonSerializer: работа со словарем - PullRequest
0 голосов
/ 12 октября 2018

Я создаю веб-сервис на iis + asp.net, и у меня возникла проблема с сериализацией JSON.При использовании JSON.Net или JavaScriptSerializer словарь сериализуется как

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

, но когда он проходит через «десериализатор ASP», словарь сериализуется следующим образом:

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

I 'Я не знаком с веб-сервисами ASP.net, поэтому я использую готовый шаблон для Visual Studio.Когда я смотрю в web.config, я вижу, что есть определения для конечных точек и поведения.В одном из этих действий я вижу ссылку на dataContractSerializer.Похоже, что это сериализатор, который используется под капотом при десериализации.

Итак, мои вопросы:

  • Можно ли настроить dataContractSerializer для сериализации вменяемогоспособ (с помощью директивы в веб-конфигурации)?

  • Можно ли установить другой Serializer (JSON.net?) для конечной точки в web.config?

Мой метод в настоящее время выводит словарь, я изменяю его, чтобы вернуть строку (которую я передаю с моей собственной сериализацией моего словаря).Но это не очень помогло, потому что строка экранируется сериализатором по умолчанию, который заключает ее в '' '.

Могу ли я переопределить это? Записав непосредственно в ответ и завершив ответ?

Пожалуйста, помогите мне, я действительно не хочу менять существующего клиента, поэтому мне нужно сделать это на стороне сервера.

...