c# – RestSharp将Json对象序列化为Post参数
发布时间:2020-12-16 01:59:24 所属栏目:百科 来源:网络整理
导读:我正在研究这个需要序列化 JSON对象以使用RestSharp发布参数的项目,下面是我的代码: var request = new RestRequest(); request.Method = Method.POST; request.RequestFormat = DataFormat.Json; request.AddBody(jsonObject); return client.Executedynam
我正在研究这个需要序列化
JSON对象以使用RestSharp发布参数的项目,下面是我的代码:
var request = new RestRequest(); request.Method = Method.POST; request.RequestFormat = DataFormat.Json; request.AddBody(jsonObject); return client.Execute<dynamic>(request); 我意识到,不是将每个JSON名称值对添加为post参数,request.AddBody将整个JSON字符串添加为一个大的post参数.我的问题是,有没有办法导致request.AddBody方法添加每个JSON名称 – 值对作为单独的帖子参数?我知道request.AddParameter()完成了这项工作,但这需要手动添加每个参数. 代替: [0]:{ application/json=" { "name":"john doe","age": "12","gender": "male"} } } 期望的结果: [0]:"name":"john doe" [1]:"age":"12" [2]:"gender":"male" 解决方法
答案似乎是遍历您的jsonObject并将每个所需的JSON名称 – 值对转换为参数.为此,您可以在循环中使用request.AddParameter方法,该循环使用以下内容迭代jsonObject的名称 – 值对:
foreach (var pair in jsonObject) { request.AddParameter(pair.Key,pair.Value); } 这可能过于简单,但使用像JSON.NET这样的库,应该很容易做到.然后你可以将这个功能包装到一个漂亮的小方法中并随意重用.没有体力劳动. 注意:您可能希望在现有代码中删除行request.RequestFormat = DataFormat.Json,因为JSON正是您似乎不希望POST的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |