C#Newtsonsoft.Json - 使用嵌套数组将JSON反序列化为DataTable

时间:2017-03-31 15:35:56

标签: c# arrays json datatable dataset

我有嵌套数组的JSON数据(参见下面的示例)。我想要完成的是将这些数据反序列化为DataSet,其中每个嵌套数组都插入到相应的数据表中。

示例:

[
{
    "Id": "1",
    "LastName": "John",
    "FirstName": "Doe",
    "MiddleInitial": "I",
    "DateOfBirth": "2000-10-05",
    "Gender": "M",
    "LastModifiedDate": "2017-03-13 14:36:53",
    "Classes": [
        {
            "ClassNumber": "21",
            "TeacherID": "15"
        },
        {
            "ClassNumber": "12",
            "TeacherID": "10"
        }
    ]
},
{
    "Id": "2",
    "LastName": "Jane",
    "FirstName": "Doe",
    "MiddleInitial": "K",
    "DateOfBirth": "2000-10-05",
    "Gender": "F",
    "LastModifiedDate": "2017-03-13 14:36:53",
    "Classes": [
        {
            "ClassNumber": "11",
            "TeacherID": "8"
        },
        {
            "ClassNumber": "4",
            "TeacherID": "26"
        }
    ]
}]

因此数据集将包含2个数据表。一个包含来自主数组的所有记录,另一个包含来自" Classes"的所有记录。阵列。

1 个答案:

答案 0 :(得分:0)

您必须手动创建DataSet及其DataTable并手动填充它们。没有自动的方法,如果这是你所希望的。如果你需要维护对象之间的关系,你必须在课堂上添加一个外键,否则就无法知道一个类属于哪个人。

表列可以从JSON属性生成,当然,如果您对编写代码的方式足够小心,或者JSON结构总是相同,毫无例外。