c JSON.net 是一個流行的用于解析和生成 JSON 數(shù)據(jù)的 C# 庫。它提供了簡潔的 API,便于開發(fā)人員來處理 JSON 數(shù)據(jù)。
對象數(shù)組是 JSON 數(shù)據(jù)中一種常用的數(shù)據(jù)類型,表示一組具有相同結(jié)構(gòu)的對象。c JSON.net 中提供了便捷的方法來處理對象數(shù)組。
下面是一個示例 JSON 數(shù)據(jù),包含一個名為 "students" 的對象數(shù)組:
{ "students": [ { "name": "Tom", "age": "18", "grade": "A" }, { "name": "Lucy", "age": "20", "grade": "B" }, { "name": "Jack", "age": "19", "grade": "C" } ] }
使用 c JSON.net 解析該 JSON 數(shù)據(jù),我們可以使用 JObject 類來獲取 "students" 對應(yīng)的 JArray,然后使用 JArray 的 Count 屬性獲取對象數(shù)組中元素的數(shù)量:
JObject obj = JObject.Parse(jsonString); JArray array = (JArray)obj["students"]; int count = array.Count;
我們還可以遍歷對象數(shù)組中的每個元素,使用 JArray 的索引訪問元素,并使用 JObject 的 GetValue 方法獲取元素的屬性值:
foreach (JObject student in array) { string name = student.GetValue("name").ToString(); string age = student.GetValue("age").ToString(); string grade = student.GetValue("grade").ToString(); }
同時,我們也可以使用 JObject 的 SelectToken 方法獲取對象數(shù)組中所有元素的指定屬性值,并將其存儲在一個列表中:
Listnames = array.SelectTokens("$.[*].name").Select(x =>x.ToString()).ToList(); List ages = array.SelectTokens("$.[*].age").Select(x =>x.ToString()).ToList(); List grades = array.SelectTokens("$.[*].grade").Select(x =>x.ToString()).ToList();
在生成 JSON 數(shù)據(jù)時,我們也可以使用 JArray 類來創(chuàng)建對象數(shù)組。以下是創(chuàng)建與之前相同的對象數(shù)組的示例代碼:
JObject obj = new JObject(); JArray array = new JArray(); array.Add(new JObject(new JProperty("name", "Tom"), new JProperty("age", 18), new JProperty("grade", "A"))); array.Add(new JObject(new JProperty("name", "Lucy"), new JProperty("age", 20), new JProperty("grade", "B"))); array.Add(new JObject(new JProperty("name", "Jack"), new JProperty("age", 19), new JProperty("grade", "C"))); obj.Add(new JProperty("students", array)); string jsonString = obj.ToString();
通過以上方法,我們可以輕松地處理對象數(shù)組的 JSON 數(shù)據(jù),實現(xiàn)我們所需的功能。