【问题标题】:C# Newtsonsoft.Json - Deserialize JSON with nested arrays to DataTableC# Newtonsoft.Json - 将带有嵌套数组的 JSON 反序列化为 DataTable
【发布时间】:2017-08-25 22:56:16
【问题描述】:

我有带有嵌套数组的 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 个数据表。一个包含主数组中的所有记录,第二个包含“类”数组中的所有记录。

【问题讨论】:

  • 不清楚您遇到了什么问题。请提供错误详情或预期/实际结果。当然还有一些代码

标签: c# arrays json datatable dataset


【解决方案1】:

您必须手动创建 DataSet 及其 DataTables 并手动填充它们。如果这是您所希望的,则没有自动的方法。如果需要维护对象之间的关系,无论如何都必须向 Class 添加外键,否则无法知道 Class 属于哪个人。

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

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多