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

问题描述

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

enter image description here

谢谢

解决方法

选项 1 是解析或查询 json。请参阅 Json.NET 的官方 Querying JSON with LINQQuerying JSON with SelectToken 或新 System.Text.Json 序列化器的 JsonDocument.Parse。

如果您想要/需要使用 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 Path 来查询它。请参阅: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");

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...