C#對于遞歸JSON的處理,可以采用Newtonsoft.Json這一第三方庫來實(shí)現(xiàn)。具體的代碼實(shí)現(xiàn)可以參考下面的示例:
using Newtonsoft.Json; using Newtonsoft.Json.Linq; public static JToken GetJsonValue(JToken obj, string key) { if (obj.Type == JTokenType.Object) { foreach (JProperty child in obj.Children()) { if (child.Name == key) { return child.Value; } else { JToken value = GetJsonValue(child.Value, key); if (value != null) return value; } } } else if (obj.Type == JTokenType.Array) { foreach (JToken child in obj.Children()) { JToken value = GetJsonValue(child, key); if (value != null) return value; } } return null; }
上面的代碼實(shí)現(xiàn)了遍歷JSON對象,尋找指定的鍵值并返回其對應(yīng)的值。如果該鍵值不在當(dāng)前層級,則通過遞歸的方式繼續(xù)搜索子層級。需要注意的是,在遍歷數(shù)組時(shí),需要對數(shù)組中每一個(gè)元素都遞歸進(jìn)行搜索。
通過上述的方式,我們可以方便地對JSON中的數(shù)據(jù)進(jìn)行遍歷和查找,實(shí)現(xiàn)各種復(fù)雜的操作。