C# 嵌套数组,如何反序列化为对象集合

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 对象,并将它们添加到列表中。