Json RestSharp deserilizing Response Data null

Tho*_*ing 6 c# json restsharp

我使用RestSharp访问Rest API.我喜欢将数据作为POCO返回.我的RestSharp客户端看起来像这样:

var client = new RestClient(@"http:\\localhost:8080");
        var request = new RestRequest("todos/{id}", Method.GET);
        request.AddUrlSegment("id", "4");
        //request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
        //With enabling the next line I get an new empty object of TODO
        //as Data
        //client.AddHandler("*", new JsonDeserializer());
        IRestResponse<ToDo> response2 = client.Execute<ToDo>(request);
        ToDo td=new JsonDeserializer().Deserialize<ToDo>(response2);

        var name = response2.Data.name;
Run Code Online (Sandbox Code Playgroud)

我的JsonObject类看起来像这样:

public class ToDo
{
    public int id;
    public string created_at;
    public string updated_at;
    public string name;
}
Run Code Online (Sandbox Code Playgroud)

和Json的回应:

{
    "id":4,
    "created_at":"2015-06-18 09:43:15",
    "updated_at":"2015-06-18 09:43:15",
    "name":"Another Random Test"
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*d L 15

根据文档,RestSharp仅反序列化为属性,并且您正在使用字段.

RestSharp使用您的类作为起点,循环遍历每个可公开访问的可写属性,并在返回的数据中搜索相应的元素.

您需要将ToDo班级更改为以下内容:

public class ToDo
{
    public int id { get; set; }
    public string created_at { get; set; }
    public string updated_at { get; set; }
    public string name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

  • @ThomasKaemmerling很高兴听到它!如果我的回答对你有所帮助,那么接受它将非常感激.http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow (3认同)