我在json.net JObject中有以下Json:
{ project: [
{
allBuilds: [{id: 1}, {id: 2}, { id:3, id:4,}]
},
{
allBuilds: [{id: 5}, {id: 6}, { id:7, id:8,}]
}
]
}
如果我有一个项目数组,我如何找到包含某个id的项目? 我试过了:
var matchingProject = arrayOfProjects.FirstOrDefault(project =>
project["allBuilds"].Any(build => (int) build["id"] == 5))
答案 0 :(得分:1)
我会创建一个具体的类,您可以将json反序列化为。 您可以使用JavaScripSerializer执行此操作:http://www.codeproject.com/Tips/210810/Deserialize-JSON-with-C
我认为您不能直接使用LINQ和动态对象,因为您的数据结构必须是IEnumerable<T> for LINQ to work.
在序列化对象上试试这个:
var found = project.SelectMany(b => b.allBuilds).Any(a => a.Id == 5);