色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c# json 多層嵌套 遍歷

江奕云1年前8瀏覽0評論

c#中使用json格式進行數據傳輸和存儲已經成為網絡開發的基礎。常常會面臨的問題是,json數據可能會包含多層嵌套。如何對多層嵌套的json數據進行遍歷,是c#程序員必須面對的問題。

// 假設以下是一段多層嵌套的json數據
string jsonStr = @"
{
'name': 'John',
'age': 30,
'cars': [
{
'model': 'BMW 230',
'mpg': 27.5,
'year': 2016,
'accessories': [
{
'name': 'XM Radio',
'price': 42.95
},
{
'name': 'Maple Wood Trim',
'price': 895
}
]
},
{
'model': 'Ford Edge',
'mpg': 24.1,
'year': 2017,
'accessories': [
{
'name': 'Trailer Hitch',
'price': 350.00
}
]
}
]
}";
// 先將json字符串轉換為JObject對象
JObject jsonObj = JObject.Parse(jsonStr);

上面的代碼中,我們使用Newtonsoft.Json庫將json字符串轉換為JObject對象,以便于后續的遍歷操作。

// 遍歷json數據的第一層
foreach(JProperty property in jsonObj.Properties())
{
Console.WriteLine(property.Name + ":" + property.Value);
}
// 遍歷json數據的第二層,以cars為例
foreach (JObject obj in jsonObj["cars"])
{
foreach (JProperty property in obj.Properties())
{
Console.WriteLine(property.Name + ":" + property.Value);
}
}
// 遍歷json數據的第三層,以accessories為例
foreach (JObject obj in jsonObj["cars"])
{
foreach (JObject access in obj["accessories"])
{
foreach (JProperty property in access.Properties())
{
Console.WriteLine(property.Name + ":" + property.Value);
}
}
}

上面的代碼中,我們使用了JObject下的Properties()方法獲取json數據中的所有屬性,然后使用foreach遍歷輸出。當遍歷到包含數組類型的屬性時,我們需要使用foreach遍歷數組中的每一個對象。

遍歷多層嵌套的json數據,需要使用嵌套的foreach語句。手動遍歷的方式有些不太方便,當然也可以使用遞歸的方式進行遍歷,但原理都是一樣的。使用Newtonsoft.Json庫,遍歷多層嵌套的json數據就變得輕松簡單。