我有。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);