问题背景:
我有一个对象层次结构,它包含一个对象数组的对象数组。我编写了类来从JSON表示中正确地反序列化该对象。
代码:
var list = new People
{
PersonList = new object[]
{
new object[]
{
"Test1", "Test2", "Test3", null, new Person{Name="John", Age=21}, 1
},
new object[]
{
"Test4", "Test5", "Test6", null, null, 2
},
new object[]
{
"Test17", "Test8", "Test9", null, new Person{Name="Sara", Age=31}, 3
},
new object[]
{
"Test10", "Test11", "Test12", null, null, 4
},
new object[]
{
"Test13", "Test14", "Test15", null, new Person{Name="John", Age=31}, 5
}
}
};
string output = JsonConvert.SerializeObject(list);
var objList = JsonConvert.DeserializeObject<People>(output);
objectList = objList.PersonList;
foreach (var objectItem in objectList)
{
//Extract elements from the looped 'objectItem' array.
}
问题:
目前我似乎无法从单个对象数组中提取数据。上面的for循环允许访问每个对象数组,但我无法获取其中的元素。
有谁能让我知道如何提取这些数据?
答案 0 :(得分:1)
这将有助于定义项目在循环中的类型:
foreach (JArray objectItem in objectList)
{
// extract them by index
var val1 = objectItem[0];
}
正如詹姆斯所说,你也可以循环通过内部object[]
,就像你是外部的一样。