在 C# 中对嵌套属性使用 JsonConvert.DeserializeObject() 方法

Using JsonConvert.DeserializeObject() Method for nested attributes in c#

我有以下 JSON 文件,希望有人能告诉我如何使用 [=16= 简单地访问嵌套的“player_status”和“previous_teams”值]() 方法。任何比我见过的过时网站更好的参考 tot 教程也会有所帮助。

谢谢

选项 1 是解析或查询 json。请查看 Querying JSON with LINQ or Querying JSON with SelectToken 的官方 Json.NET 或 JsonDocument.Parse 的新 System.Text.Json 序列化程序。

如果您want/need要使用JsonConvert.DeserializeObject,那么您将需要创建一组类来代表您的数据。

public class League 
{
   public List<Team> Details { get; set;} 
}
public class Team 
{
 public List<AboutPlayers> Players {get; set;}
}

public class AboutPlayers 
{
 public List<Capatin> Captains {get; set;}
}

public class Captain 
{
 public string Player_Status{get; set;}
 public PlayerHistory Player_History {get; set;}
}

(...)

可以使用JSON路径查询。参见:https://www.newtonsoft.com/json/help/html/QueryJsonSelectToken.htm

    JObject json = JObject.Parse("{ json string }");
    var playerStatus = json.SelectToken("details[0].players.captains[0].player_status");
    var previousTeams = json.SelectToken("details[0].players.captains[0].player_history.previous_teams");