Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化返回null,即使响应为200_C#_Wpf_Deserialization - Fatal编程技术网

C# 反序列化返回null,即使响应为200

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

我已经检查了响应,这会返回我需要的信息(不是空的),并给出200的响应。每当我尝试对返回的JSON进行反序列化时,它都会显示null,即使应该给出信息

这只发生在我尝试抓取一个项目时,当我抓取多个项目时,这一切都有效。我试图删除
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; }
}