C# 使用RestSharp反序列化JSON响应,结果为空对象

C# 使用RestSharp反序列化JSON响应,结果为空对象,c#,json,rest,api,restsharp,C#,Json,Rest,Api,Restsharp,我试图使用RestSharp使用RESTAPI,并将其反序列化到我的用户类 这是我的JSON响应: [ { "AdName": "sample string 1", "Email": "sample string 2", "Name": "sample string 3" }, { "AdName": "sample string 1", "Email": "sample s

我试图使用RestSharp使用RESTAPI,并将其反序列化到我的用户类

这是我的JSON响应:

   [
      {
        "AdName": "sample string 1",
        "Email": "sample string 2",
        "Name": "sample string 3"
      },
      {
        "AdName": "sample string 1",
        "Email": "sample string 2",
        "Name": "sample string 3"
      }
    ]
这是API客户端:

public class SamTApi
{
    const string BaseUrl = "http://localhost:8097/SamT_WebApi/api/User";


    public T Execute<T>(RestRequest request) where T : new()
    {
        var client = new RestClient();
        client.AddHandler("application/json", new JsonDeserializer());
        client.BaseUrl = new Uri(BaseUrl);

        var response = client.Execute<T>(request);

        return response.Data;
    }

    public List<User> GetUser()
    {
        var request = new RestRequest(Method.GET);
        request.RequestFormat = DataFormat.Json;
        return Execute<List<User>>(request);
    }
}
因此,当我试图断言:

var api = new SamTApi();
var users = api.GetUser();
Assert.IsNotNull(users, "users != null");

它会导致users=null。我不确定我遗漏了什么。

使用Newtonsoft Json nuget包。安装时只需调用:

var destinationObject=JsonConvert.DeserializeObject(json);

我不是RestSharp专家,但我认为您不需要
AddHandler
,我认为默认情况下它使用json反序列化。您已经通过调试确认了
response.Data
是JSON?您是对的,
AddHandler
是冗余的。它实际上根据返回的内容类型选择反序列化器。我发现由于身份验证,我的响应返回null。在这里找到了答案。谢谢你的帮助!
var api = new SamTApi();
var users = api.GetUser();
Assert.IsNotNull(users, "users != null");