加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读