C#是一種通用的面向對象編程語言,在處理JSON數據中也具有很強的能力。下面將介紹如何使用C#從JSON數據中取到對應的值。
首先,需要引用Newtonsoft.Json NuGet包,在代碼中添加以下命名空間:
using Newtonsoft.Json; using Newtonsoft.Json.Linq;
然后,假設有如下JSON數據:
{ "name": "小明", "age": 18, "address": { "province": "廣東省", "city": "深圳市", "district": "南山區" }, "hobbies": [ "打籃球", "聽音樂", "旅行" ] }
可以使用JObject類將JSON數據轉換為一個可索引的對象,然后通過鍵名獲取對應的值:
string jsonStr = @"{...}"; // JSON數據字符串 JObject jsonObj = JObject.Parse(jsonStr); string name = jsonObj["name"].ToString(); // 獲取"name"對應的值 int age = (int)jsonObj["age"]; // 獲取"age"對應的值 string province = jsonObj["address"]["province"].ToString(); // 獲取"address"下的"province" JArray hobbies = (JArray)jsonObj["hobbies"]; // 獲取"hobbies"對應的數組 string hobby1 = hobbies[0].ToString(); // 獲取數組中的第一個元素
除此之外,還可以使用Linq語句進行篩選過濾,如下所示:
// 獲取所有大于18歲的人的姓名和城市 var query = from person in jsonObj["people"] where (int)person["age"] >18 select new { Name = person["name"].ToString(), City = person["address"]["city"].ToString() }; foreach (var result in query) { Console.WriteLine("{0}所在城市是{1}", result.Name, result.City); }
通過以上方法,可以輕松地從JSON數據中取到所需的值,實現數據的解析和處理。