C# 反序列化返回null,即使响应为200
我已经检查了响应,这会返回我需要的信息(不是空的),并给出200的响应。每当我尝试对返回的JSON进行反序列化时,它都会显示null,即使应该给出信息 这只发生在我尝试抓取一个项目时,当我抓取多个项目时,这一切都有效。我试图删除C# 反序列化返回null,即使响应为200,c#,wpf,deserialization,C#,Wpf,Deserialization,我已经检查了响应,这会返回我需要的信息(不是空的),并给出200的响应。每当我尝试对返回的JSON进行反序列化时,它都会显示null,即使应该给出信息 这只发生在我尝试抓取一个项目时,当我抓取多个项目时,这一切都有效。我试图删除ProjectList类,并试图直接从Project类获取信息,但这也不会返回任何结果 var client = new RestClient("website goes here"); var request = new RestRequest($"/api/v2/p
ProjectList
类,并试图直接从Project
类获取信息,但这也不会返回任何结果
var client = new RestClient("website goes here");
var request = new RestRequest($"/api/v2/projects/{Global.PSlug}");
request.Method = Method.GET;
request.AddHeader("Accept", "application/json");
client.AddDefaultHeader("Authorization", string.Format("Bearer {0}", Global.ApiToken));
var response = client.Execute(request);
var deserialize = new JsonDeserializer();
ProjectList output = deserialize.Deserialize<ProjectList>(response);
HttpStatusCode statusCode = response.StatusCode;
int numericStatusCode = (int)statusCode;
if (numericStatusCode == 200)
{
MessageBox.Show(response.Content.ToString()); // gives info
output.Projects[0].Title = Global.PTitle;
output.Projects[0].Title = Global.PDescription;
ProjectTitle.Text = Global.PTitle;
ProjectDesc.Text = Global.PDescription;
}
这是因为您获取的JSON和用于反序列化的类是不同的。JSON需要如下内容
class ApiResponse
{
public string Message { get; set; }
public Project Project { get; set; }
}
class Project
{
public int Id { get; set; }
public string Title { get; set; }
public string Slug { get; set; }
public string Description { get; set; }
public string Deadline { get; set; }
public string User_Id { get; set; }
public string Created_At { get; set; }
public string Updated_At { get; set; }
}
这是因为您获取的JSON和用于反序列化的类是不同的。JSON需要如下内容
class ApiResponse
{
public string Message { get; set; }
public Project Project { get; set; }
}
class Project
{
public int Id { get; set; }
public string Title { get; set; }
public string Slug { get; set; }
public string Description { get; set; }
public string Deadline { get; set; }
public string User_Id { get; set; }
public string Created_At { get; set; }
public string Updated_At { get; set; }
}
class ApiResponse
{
public string Message { get; set; }
public Project Project { get; set; }
}
class Project
{
public int Id { get; set; }
public string Title { get; set; }
public string Slug { get; set; }
public string Description { get; set; }
public string Deadline { get; set; }
public string User_Id { get; set; }
public string Created_At { get; set; }
public string Updated_At { get; set; }
}