繁体   English   中英

如何在MVC5中使用C#将表单输入转换为json数组并作为http post请求发送到正文中

[英]How to Convert form inputs to json array and send it as http post request in body, using c# in mvc5

这就是我想要的(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);

结果是:[{{Key“:” Name“,” Value“:” Sam“},{” Key“:” Specialization“,” Value“:” ASP.Net“}]

但是我想要这样: [{“ Name”:“ Sam”,“ Specialization”:“ ASP.Net”}]

嗯,我认为您确实需要键值对列表而不是数组,请尝试以下操作:

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 Web请求

希望对您有所帮助。

哦,对了,所以我认为解决方案是使用Dictionary而不是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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM