Request.Form сериализует до JSON и l oop через все свойства в JSON - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть. NET Базовый проект веб-API и один запрос API, который принимает данные произвольной формы (без файлов). Мне нужно сериализовать данные формы до JSON и передать в сервис. Затем в сервисе мне нужно l oop через каждое свойство JSON и выполнить некоторую обработку.

Я пытаюсь что-то вроде этого:

var json = JsonConvert.SerializeObject(Request.Form); //it isn't simple JSON

и

var jsonObject = new JObject();
var data = Request.Form.ToList();
for (var i = 0; i < data.Count; i++)
{        
    jsonObject.Add(data[i].Key, data[i].Value.ToString());
}

Есть ли другие способы сделать это? Как насчет l oop через все JSON свойства?

1 Ответ

0 голосов
/ 22 апреля 2020

Я не уверен, что вы можете сериализовать напрямую Request.Form на JSON.

Но не могли бы вы попробовать вот так?

public static IDictionary<string, object> ToDictionary(this NameValueCollection col)
{
  var dict = new Dictionary<string, object>();

  foreach (var key in col.Keys)
  {
    dict.Add(key, col[key]);
  }

  return dict;
}

затем

var dictionary = Request.Form.ToDictionary();
string json = JsonConvert.SerializeObject(dictionary, Formatting.Indented);

затем на сервисе десериализуйте вашу строку.

Dictionary<string, object> dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...