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

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

此刻,我把它放到一个动态对象中,这样我就可以检查它是否正常工作了:

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

如何从Json文件中获取所需信息并将其存储为变量。

将其存储在类中的所有其他教程都使用整个Json文件,并且在我的情况下看起来并不有用。

这里是Json,我只需要在文件末尾的Stats部分了解我在做什么

{
  "data": {
    "id": "","type": "player","children": [
      {
        "id": "legend_8","type": "legend","metadata": {
          "legend_name": "Pathfinder","icon": "https://trackercdn.com/cdn/apex.tracker.gg/legends/pathfinder-tile.png","bgimage": "https://trackercdn.com/cdn/apex.tracker.gg/legends/pathfinder-concept-bg-small.jpg","is_active": true
        },"stats": [
          {
            "metadata": {
              "key": "Kills","name": "Kills","categoryKey": "combat","categoryName": "Combat","isReversed": false
            },"value": 377.0,"percentile": 21.0,"displayValue": "377","displayRank": ""
          },{
            "metadata": {
              "key": "Finishers","name": "Finishers","categoryKey": "game","categoryName": "Game","value": 39.0,"percentile": 0.2,"rank": 886,"displayValue": "39","displayRank": "886"
          }
        ]
      },{
        "id": "legend_5","metadata": {
          "legend_name": "bloodhound","icon": "https://trackercdn.com/cdn/apex.tracker.gg/legends/bloodhound-tile.png","bgimage": "https://trackercdn.com/cdn/apex.tracker.gg/legends/bloodhound-concept-bg-small.jpg","is_active": false
        },"value": 235.0,"percentile": 16.0,"displayValue": "235","displayRank": ""
          }
        ]
      }
    ],"metadata": {
      "statsCategoryOrder": [
        "combat","game","weapons"
      ],"platformId": 2,"platformUserHandle": "","accountId": "","cacheExpireDate": "11/10/2019 10:48:14 PM","level": 49,"avatarUrl": "https://avatar-cdn.tracker.gg/api/avatar/2/","countryCode": null,"collections": 36,"activeLegend": 8
    },"stats": [
      {
        "metadata": {
          "key": "Level","name": "Level","isReversed": false
        },"value": 49.0,"percentile": 46.0,"displayValue": "49","displayRank": ""
      },{
        "metadata": {
          "key": "Kills","value": 612.0,"percentile": 20.0,"displayValue": "612",{
        "metadata": {
          "key": "Finishers","percentile": 0.5,{
        "metadata": {
          "key": "RankScore","name": "Rank Score","value": 64.0,"displayValue": "64","displayRank": ""
      }
    ]
  }
}
dalezhuzhu 回答:如何仅将Json文件的一部分反序列化为类C#

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

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; }

}

现在您可以按以下方式反序列化json以检索统计信息部分

var result = JsonConvert.DeserializeObject<RootObject>(json).data.stats;
本文链接:https://www.f2er.com/3127199.html

大家都在问