使用空数据表序列化数据集会丢失所有列信息



我试图将数据集序列化为 json。一切正常,但没有记录,则缺少列信息。我找到了一些解决方案,但没有一个不能解决我的问题。

我编写了一个存储过程来从MSSQL服务器检索所有表记录并存储到数据集中,然后尝试使用NewtonSoft序列化为json,然后将其写入Json文件。

DataSet ds_v 
string json = JsonConvert.SerializeObject(ds_v);
System.IO.File.WriteAllText(Server.MapPath("~") + "/txt.json", json);

我想要如下输出

{
"Table": [],//here iam getting empty table without having column informations.So i want to get the column informations

"Table1": [
{
}]
}

您可以检查数据表的行数是否为 0,然后添加一个空行。 然后你可以看到序列化后表的架构。 像这样:

if (ds_v.Tables[0].Rows.Count == 0)
{
var row = ds_v.Tables[0].NewRow();
ds_v.Tables[0].Rows.Add(row);
}
string json = JsonConvert.SerializeObject(ds_v);

或者,如果您只想在不修改数据集的情况下查看架构,则可以使用此代码

var cols = ds_v.Tables[0].Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToList();
var json = JsonConvert.SerializeObject(cols, Formatting.Indented);

最新更新