请求.表单序列化为JSON,并循环使用JSON中的所有属性



我有。NET核心Web API项目和一个接受随机表单数据(无文件(的API查询。我需要将表单数据序列化为JSON并传递给服务。然后在服务中,我需要循环遍历每个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());
}

还有其他方法吗?遍历所有JSON属性怎么样?

我不确定您是否可以直接序列化Request。表单转换为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);

最新更新