Как преобразовать входные данные формы в массив json и отправить его как HTTP-запрос post в теле, используя c # в mvc5 - PullRequest
0 голосов
/ 30 ноября 2018

Это то, что я хочу (массив json): [{"location": "uk", "keyword": "developer", "specialization": "asp.net", "lat": "28.5654"}," long ": 78.3265"] `

Это то, что я пытался получить массив json:

var list = new List<KeyValuePair<string, string>>();

        list.Add(new KeyValuePair<string, string>("Name", query.Name));
        list.Add(new KeyValuePair<string, string>("Specialization", query.Specialization));

        var json = JsonConvert.SerializeObject(list);

Это результат: [{"Ключ ":" Имя "," Значение ":" Сэм "}, {" Ключ ":" Специализация "," Значение ":" ASP.Net "}]

Но яхотите это так: [{"Имя": "Сэм", "Специализация": "ASP.Net"}]

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Да, я думаю, что решение состоит в том, чтобы использовать словарь вместо KeyValuePair:

var list = new Dictionary<string,string>();

list.Add("location", mysearch.location);
list.Add("keyword", mysearch.keyword);
...

var listSerialized= JsonConvert.Serialize(list);

Если вам нужен массив, вы можете сделать это:

var dictionaryList = new List<Dictionary<string, string>>();

foreach(search in mySearchList)
{
    var item = new Dictionary<string,string>();
    item.Add("location", search.location);
    item.Add("keyword", search.keyword);
    ...

    dictionaryList.Add(item);
}
var serializedArray = JsonConvert.Serialize(jsonArray);
0 голосов
/ 30 ноября 2018

Хммм, я думаю, вам действительно нужен список пары ключ-значение вместо массива, попробуйте это:

var list = new List<KeyValuePair<string,string>>();
list.Add(new KeyValuePair<string,string>("location": mysearch.location);
list.Add(new KeyValuePair<string,string>("keyword": mysearch.keyword);
...

Вы можете использовать это как запрос тела, но если вам нужен массив, вы можете сделать:

var array = list.ToArray();

Для получения справки о том, как сделать HTTP-запрос к публикации, вы можете обратиться к этому сообщению: Как сделать веб-запрос HTTP POST

Я надеюсь, будет полезным.

...