C# 嵌套数组,如何反序列化为对象集合
例如:数据格式为字符串
"[
["王小明",12,“三年级”],
["王二明",13,“四年级”],
["王三明",15,“四年级”],
]"
如何把上述数据,反序列化为C# 的对象集合
引用chatgpt部分指引作答:
你可以定义一个类来表示数组的每个元素:
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Grade { get; set; }
}
然后使用如下代码将字符串反序列化为对象集合:
```c#
using System;
using System.Collections.Generic;
using System.Text.Json;
class Program
{
static void Main(string[] args)
{
string jsonString = @"
[
[""王小明"", 12, ""三年级""],
[""王二明"", 13, ""四年级""],
[""王三明"", 15, ""四年级""]
]";
List<Student> students = new List<Student>();
JsonElement element = JsonDocument.Parse(jsonString).RootElement;
foreach (JsonElement subElement in element.EnumerateArray())
{
string name = subElement[0].GetString();
int age = subElement[1].GetInt32();
string grade = subElement[2].GetString();
students.Add(new Student() { Name = name, Age = age, Grade = grade });
}
// students now contains the deserialized objects
}
}
```
在上面的示例中,我们首先使用 JsonDocument.Parse 将 JSON 字符串解析为 JsonElement 对象。然后,我们遍历该元素的子数组,并从每个子数组的元素中提取出所需的数据。最后,我们利用这些数据创建 Student 对象,并将它们添加到列表中。