我array
deserialize
时收到JSON
。
我可以使用array
访问foreach
。
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
foreach (dynamic result in obj.Results.output1.value.Values)
{
}
但我需要size
的{{1}}来直接访问最后一个元素。
例如
array
我该怎么做?
我需要举例obj.Results.output1.value.Values[size-1]
"Y"
"Values"
如果我打印,我会得到{
"Results": {
"output1": {
"type": "table",
"value": {
"ColumnNames": [
"I01",
"I02",
"I03",
"O01",
"Scored Probabilities for Class \"0\"",
"Scored Probabilities for Class \"1\"",
"Scored Probabilities for Class \"2\"",
"Scored Labels"
],
"Values": [
[
"-0.96624",
"0.02918",
"-0.44237",
null,
"3.25456957391002E-12",
"0.000107838139228988",
"2.76633869589205E-07",
"Y"
]
]
}
}
}
}
JSON
计数打印Console.WriteLine(obj.Results.output1.value.Values);
[
[
"-0.96624",
"0.02918",
"-0.44237",
null,
"3.25456957391002E-12",
"0.000107838139228988",
"2.76633869589205E-07",
"Y"
]
]
1
我几乎就在那里,我需要Console.WriteLine(obj.Results.output1.value.Values.Count);
的最后一个元素来访问内部size
中的索引。
我可以得到最后一个元素:
array
数组大小为:
Console.WriteLine(obj.Results.output1.value.Values[0].Last);
答案 0 :(得分:3)
JSON显示Results
是对象,而不是数组或列表。您正在迭代的是属性。这不是一个集合。它将是JObject
,公开.Last
。
你只需要写:
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
var lastProperty = obj.Last;
可能有助于转换为JObject(或Dictionary<string, object>
以帮助解决未来的问题。
JObject obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
访问Values
:
dynamic thing = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
var t = thing.Results.output1.value.Values.Count;
答案 1 :(得分:0)
int[] foo = new int[10];
int n = foo.Length;
你可以使用(arrayname.lenth
)来获得数组大小.try it。
答案 2 :(得分:0)
以下是样本,我可以得到100的结果。
ICollection collection = new int[100];
dynamic obj = collection;
Console.WriteLine(obj.Length);