首页 > 解决方案 > 序列化数据时创建树节点

问题描述

我从 SQL 数据库中查询了一些数据,并使用此代码对它们进行序列化:

List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
DataTable dt = new DataTable();
...

SqlDataAdapter adapt = new SqlDataAdapter();
adapt.Fill(dt);

Dictionary<string, object> row;
foreach (DataRow dr in dt.Rows)
{
    row = new Dictionary<string, object>();
    foreach (DataColumn col in dt.Columns)
    {
        row.Add(col.ColumnName, dr[col]);
    }
    rows.Add(row);
}
return JsonSerializer.Serialize(rows);

当我序列化它们时,它给了我这个结果:

{
    "operator": "Unknown",
    "extrainfo": "potential client",
    "Name": "John Doe",
    "ID": 568910,
    "LastUpdate": "2021-07-22T00:00:00",      
    "Interested?": "Yes",
    "Does it have a valid contract?": "No",
    "Contract type": "Prepaid",
    "Client willing to pay more?": "Yes, up to 20%",       
    "Comments": {}
}

我希望lastUpdate列之后的所有数据都在另一个节点内序列化,该节点简称为interview. 这是我想要序列化它们的方式:

{
    "operator": "Unknown",
    "extrainfo": "potential client",
    "Name": "John Doe",
    "ID": 568910,
    "LastUpdate": "2021-07-22T00:00:00",          
    "interview": [
        {
            "question" : "Interested?",
            "answer": "Yes"
        },
        {
            "question" : "Does it have a valid contract?",
            "answer": "No"
        },
        {
            "question" : "Contract type",
            "answer": "Prepaid"
        },
        {
            "question" : "Client willing to pay more?",
            "answer": "Yes, up to 20%"
        },           
        {
            "question" : "Comments",
            "answer": ""
        }
    ]
}

这是数据库行的样子: 在此处输入图像描述

我想要一些关于如何做到这一点的帮助。

标签: c#serializationdeserializationjsonserializer

解决方案



推荐阅读