如何使用json.net

我想序列化一个DataTable对象,该对象没有行,但是它具有列

现在,Newtonsoft JSON.NET将这样的DataTable序列化为完全空的表,没有列。

但是,我想要列的名称和类型!

如何配置JSON.NET以序列化具有列名和列类型的空DataTable?

houtiecong 回答:如何使用json.net

假设您有一个数据表dt,则可以使用Linq将列投影到匿名类型(包含ColumnName和Type)列表中:

var columns = dt.Columns
                .Cast<DataColumn>()
                .Select(c => new { Name = c.ColumnName,Type = c.DataType.ToString()});

然后使用Newtonsoft.Json可以像这样序列化:

var json = JsonConvert.Serialize(columns);

或使用System.Text.Json

var json = JsonSerializer.Serialize(columns);

其中(如果您的表有3列-IdNameDate)会产生类似以下内容的JSON:

[
  {
    "Name": "Id","Type": "System.Int32"
  },{
    "Name": "Name","Type": "System.String"
  },{
    "Name": "Date","Type": "System.DateTime"
  }
]
本文链接:https://www.f2er.com/3145196.html

大家都在问