c# - Request.Form 序列化为 JSON 并遍历 JSON 中的所有属性
问题描述
我有 .NET Core 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.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);
推荐阅读
- c++ - 使用 C++ 中的套接字进行快速 CAN 通信
- json - 选择 json 包含的位置
- javascript - 有没有办法将 Python 变量传递给 Plotly Dash clientside_callback?
- docker - docker-compose 容器名称使用破折号 (-) 而不是下划线 (_)
- flutter - 如何在导航到下一页时停止资产音频播放器(assets_audio_player 包)
- calendar - SaaS产品日历管理系统
- react-native - 如何为状态值赋予与 React Native 中的其余文本不同的颜色?
- ios - iOS 15 UIWindowScene 无法正常工作
- java - 在javaFX中使用多个按钮在一个场景中传递信息
- regex - 字符前的正则表达式空格