我是 C# 中 json 的新手。我使用 newtonsoft.json 我有一个带有数据(数组)的 json 文件:
[
{
"firstName": "Joyce",
"lastName": "Huff",
"isActive": true,
"age": 59,
"gender": "female",
"eyeColor": "green",
"friends": [
"Kendra Buck"
]
},
{
"firstName": "Diann",
"lastName": "Patrick",
"isActive": true,
"age": 45,
"gender": "female",
"eyeColor": "blue",
"friends": [
"Roach Mills",
"Diaz Pickett"
]
},
{
"firstName": "Holt",
"lastName": "Erickson",
"isActive": false,
"age": 53,
"gender": "male",
"eyeColor": "brown",
"friends": [
"Lindsay Wyatt",
"Freeman Mcfadden",
"Matilda Franklin"
]
},
{
"firstName": "Crystal",
"lastName": "Santiago",
"isActive": false,
"age": 31,
"gender": "female",
"eyeColor": "brown",
"friends": [
"Stacy Joseph"
]
}
]
Run Code Online (Sandbox Code Playgroud)
如何使用 C# 读取包含数组的 json 文件并对其执行 LINQ 查询?我在 JObject 上找到了从文件中读取 json 的示例,但我不知道如何处理 json 数组。阅读 json 数组后,我想运行如下查询: select count(*) from person where age>40;
请建议我。先感谢您。
定义模型:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
public bool isActive { get; set; }
public int age { get; set; }
public string gender { get; set; }
public string eyeColor { get; set; }
public List<string> friends { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
string json = System.IO.File.ReadAllText("test.json");
var people = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Person>>(json);
Run Code Online (Sandbox Code Playgroud)
执行 LINQ查询:
var peopleOverForty = from p in people
where p.age > 40
select p;
Run Code Online (Sandbox Code Playgroud)