Json 是否可以发送列表<;字符串>;在POST请求中?

Json 是否可以发送列表<;字符串>;在POST请求中?,json,serialization,restsharp,Json,Serialization,Restsharp,我正在尝试使用我所拥有的restful服务开始工作。除了通过POST传递的对象包含一个列表(在这个特定的例子中是一个字符串的列表)之外,一切似乎都正常工作 我的目标: public class TestObj { public string Name{get;set;} public List<string> Children{get;set;} } 我是做错了什么,还是这是RestSharp中的一个bug?(如果有区别的话,我使用的是JSON,而不是XML。)我在

我正在尝试使用我所拥有的restful服务开始工作。除了通过
POST
传递的对象包含一个列表(在这个特定的例子中是一个
字符串的列表)之外,一切似乎都正常工作

我的目标:

public class TestObj
{
    public string Name{get;set;}
    public List<string> Children{get;set;}
}

我是做错了什么,还是这是RestSharp中的一个bug?(如果有区别的话,我使用的是JSON,而不是XML。)

我在GUI列表中遇到了类似的问题。我的帖子会有用,但列表中永远不会有正确的数据。我对它进行了黑客攻击,并使用json.net对该对象进行了序列化


我知道这并不完美,但它的技巧取决于您所访问的服务器,但如果您访问的是ASP.NET Web API控制器(可能还有其他服务器端技术),那么如果您在循环中添加集合中的每个项,它将起作用:

foreach (var child in test.Children) 
    request.AddParameter("children", x));

使用AddJsonBody

var client = new RestClient();
var request = new RestRequest("http://localhost", Method.PUT);
request.AddJsonBody(new TestObj {
     Name = "Fred", 
     Children = new List<string> {"Arthur", "Betty"}
});
client.Execute(request);

我认为这应该是最好的答案。没有一种合适的方法可以解决这个问题,考虑到IEnumerables在web框架中的流行程度,我个人认为RestSharp应该默认使用这个方法。与我在本文和类似文章中看到的其他解决方案相比,该解决方案可以轻松封装,并且不依赖于外部库(这可能会在集合中的每个节点上引入一些开销)。我在MVC viewmodels中处理IEnumerables时使用JSON字符串,这是值得的,所以我认为这不是一个糟糕的解决方案。谢谢你的回答@Koranger-你知道对象在params中的外观吗-这样就可以在服务器控制器中访问它了?
var client = new RestClient();
var request = new RestRequest("http://localhost", Method.PUT);
request.AddJsonBody(new TestObj {
     Name = "Fred", 
     Children = new List<string> {"Arthur", "Betty"}
});
client.Execute(request);
[AcceptVerbs("PUT")]
string Portefeuille(TestObj obj)
{
    return String.Format("Sup' {0}, you have {1} nice children", 
        obj.Name, obj.Children.Count());
}