我有一個像下面這樣的 JSON
{
"value": [
{
"name": "504896c031d2fcb9",
"location": "North Europe",
"properties": {
"state": "UNKNOWN",
"name": "504896c031d2fcb9",
"siteInstanceName": "504896c031d2fcb93ec",
"healthCheckUrl": null,
"machineName": "lw0s",
"containers": null
}
},
{
"name": "35aafa",
"location": "North Europe",
"properties": {
"state": "UNKNOWN",
"name": "35aafae",
"siteInstanceName": "35aafaeff",
"healthCheckUrl": null,
"machineName": "lw1s",
"containers": null
}
}
],
"nextLink": null,
"id": null
}
我將 JSON 轉換為動態
string kq = reader.ReadToEnd();
dynamic jss = JsonConvert.DeserializeObject(kq);
現在想知道如何計算 c# 中有多少個值?上面的例子有 2 個值
謝謝你。
uj5u.com熱心網友回復:
如果你知道鑰匙,你可以做類似的事情
dynamic jss = JsonConvert.DeserializeObject(kq);
jss["value"].Count
uj5u.com熱心網友回復:
投射為JArray和.Count。
也許,如果value不是陣列型別,castedarray將回傳為null。
您可以添加處理以檢查它是否不是null并獲取.Count。
dynamic jss = JsonConvert.DeserializeObject(kq);
JArray array = jss["value"] as JArray;
Console.WriteLine(array != null ? array.Count : 0);
示例程式(JsonConvert.DeserializeObject)
推薦:
由于您將 JSON 字串反序列化為dynamic,JsonConvert.DeserializeObject因此它將回傳JObject型別的值。
我建議使用JObject.Parse而不是JsonConvert.DeserializeObject<T>(這是為轉換為強型別物件而設計的)。
您可以閱讀這個問題:JObject.Parse vs JsonConvert.DeserializeObject了解更多資訊。
using Newtonsoft.Json.Linq;
JObject jss = JObject.Parse(json);
JArray array = jss["value"] as JArray;
Console.WriteLine(array != null ? array.Count : 0);
示例程式(JObject.Parse)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/317082.html
上一篇:使用具有給定字串陣列的MongoDBC#驅動程式在嵌套陣列上使用過濾器生成器進行查詢
下一篇:型別引數“S”的推斷型別“S”不在其范圍內;應該擴展'com.data.assignment.domain.Post'
