我正在使用 json.net 并且我有一个类似的 json 数据,
[
{
"ID":1098,
"Name":"JC",
"Issues":[
{
"PriorityLevel":"Low",
"State":"Open"
},
{
"PriorityLevel":"Low",
"State":"Open"
}
]
}
]
我只想通过 linq 从 Issue 中获取子数据。我可以联系 parent 但不能联系 child 。如果我直接访问子数据,我不需要放置多个 for 循环。
谢谢。
最佳答案
您可以只创建一个 Json 对象并将属性提取到 Anonymouse 类型中,然后您可以使用 Linq 进行查询。
string response = @"[{
""ID"":1098,
""Name"":""JC"",
""Issues"":[
{
""PriorityLevel"":""Low"",
""State"":""Open""
},
{
""PriorityLevel"":""Low"",
""State"":""Open""
}
]}]";
var jsonObject = JObject.Parse(response);
var issues = jsonObject["Issues"].Select(x => new
{
PriorityLevel = (string)x.SelectToken("PriorityLevel"),
State = (string)x.SelectToken("State")
});
您使用 SelectToken 获取问题的子项。现在您可以查询任何您想要的问题。
var lowPriorities = issues.Where(x => x.PriorityLevel == "Low");
这是“Deserializing Using LINQ Example”上 json.net 页面的直接链接。
关于c# - 如何通过linq从json获取子数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11616093/