C# 如何仅将Json文件的一部分反序列化为c类#

C# 如何仅将Json文件的一部分反序列化为c类#,c#,json,json.net,C#,Json,Json.net,我有一个Json文件,其中包含我在代码中其他地方需要的一些信息,但很多信息是不相关的 目前,我只是将其放入一个动态对象中,以便检查它是否正常工作: var data = JsonConvert.DeserializeObject<dynamic>(response.Content); 您可以创建仅具有相关属性的数据结构。比如说, public class StatMetaData { public string key { get; set; } public st

我有一个Json文件,其中包含我在代码中其他地方需要的一些信息,但很多信息是不相关的

目前,我只是将其放入一个动态对象中,以便检查它是否正常工作:

var data = JsonConvert.DeserializeObject<dynamic>(response.Content);

您可以创建仅具有相关属性的数据结构。比如说,

public class StatMetaData
{
    public string key { get; set; }
    public string name { get; set; }
    public string categoryKey { get; set; }
    public string categoryName { get; set; }
    public bool isReversed { get; set; }
}

public class Stat
{
    public StatMetaData metadata { get; set; }
    public double value { get; set; }
    public double percentile { get; set; }
    public string displayValue { get; set; }
    public string displayRank { get; set; }
}

public class Data
{
    public List<Stat> stats { get; set; }
}

public class RootObject
{
    public Data data { get; set; }

}
公共类StatMetaData
{
公共字符串密钥{get;set;}
公共字符串名称{get;set;}
公共字符串类别key{get;set;}
公共字符串categoryName{get;set;}
公共布尔值为{get;set;}
}
公共类统计
{
公共StatMetaData元数据{get;set;}
公共双值{get;set;}
公共双百分位{get;set;}
公共字符串显示值{get;set;}
公共字符串displayRank{get;set;}
}
公共类数据
{
公共列表统计信息{get;set;}
}
公共类根对象
{
公共数据数据{get;set;}
}
现在,您可以按如下方式反序列化json以检索stats部分

var result = JsonConvert.DeserializeObject<RootObject>(json).data.stats;
var result=JsonConvert.DeserializeObject(json).data.stats;

只需创建一个具有必要属性的c#数据模型。任何额外的JSON属性都将被忽略。删除您不感兴趣的属性。使用称为元数据的多个部分不会导致问题。我正试图解决他的问题,但我有点困惑这看起来会奏效,但我只是对课堂编程不是很了解。我将如何只显示其中一个变量,以查看它是否有效。例如,stat类中的值?您可以使用索引器访问其中一个结果。例如,要访问第一个项目的百分位数,可以使用结果[0]。百分位数。非常感谢。当我看到其他教程时,我认为这个问题似乎与我的能力格格不入,但你帮助我理解了它
var result = JsonConvert.DeserializeObject<RootObject>(json).data.stats;