Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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# 对c中的嵌套属性使用JsonConvert.DeserializeObject()方法#_C#_Json.net_Jsonconvert - Fatal编程技术网

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

C# 对c中的嵌套属性使用JsonConvert.DeserializeObject()方法#,c#,json.net,jsonconvert,C#,Json.net,Jsonconvert,我有以下JSON文件,希望有人能告诉我如何使用JsonConvert.DeserializeObject()方法简单地访问嵌套的“player_status”和“previous_teams”值。任何比我见过的过时网站更好的教程参考资料也会很有帮助。 谢谢选项1是解析或查询json。请参阅官方的或,以获取Json.NET或新System.Text.Json serialiser的JsonDocument.Parse 如果您想/需要使用JsonConvert.DeserializeObject,

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


谢谢

选项1是解析或查询json。请参阅官方的或,以获取Json.NET或新System.Text.Json serialiser的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;}
}

(...)
公共阶级联盟
{
公共列表详细信息{get;set;}
}
公开课小组
{
公共列表玩家{get;set;}
}
关于图层的公共类
{
公共列表队长{get;set;}
}
公务舱船长
{
公共字符串播放器_状态{get;set;}
公共玩家历史玩家历史{get;set;}
}
(...)

您可以使用JSON路径查询它。见:


看见您需要从父对象开始创建类结构。为了在不解析父对象的情况下仅检索子属性,您需要编写一个复杂的解析器来按名称提取每个属性,这可能比仅为整个对象结构创建类更慢、更困难。@Joseph,感谢您的响应。我确实研究了您最初引用的链接,并做了类似的事情,但我想更具体地研究如何解析父对象。你知道如何在这个例子中做到这一点吗?请在你的问题中包含你的JSON作为格式化文本,而不是图像。可以。谢谢你的回复。我更喜欢你的第一个选择,甚至不知道那是一个选择:)
    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");