【问题标题】:How to format data while adding in generic List如何在添加通用列表时格式化数据
【发布时间】:2016-08-03 10:13:15
【问题描述】:

我正在尝试将 DataTable 中的所有数据添加到我已为其编写 c# 代码的 List<string> dataFromDataTable = new List<string>(); 中。稍后我需要将其转换为 Json。

这里是代码。

List<string> dataFromDataTable = new List<string>();

for (int r = 0; r < employees.Rows.Count; r++)
{
   dataFromDataTable.Add("{".ToString());
   for (int c = 0; c < employees.Columns.Count; c++)
    {
      dataFromDataTable.Add(employees.Rows[r][c].ToString());
    }
   dataFromDataTable.Add("}".ToString());
}

这是我的 json 代码。

var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(sample);

截至目前,我越来越喜欢 json。

["John Doe","Fresno","Billy","Fresno","Tom","Kern","King Smith","Kings"]

而我需要它

["John Doe","Fresno"],["Billy","Fresno"],["Tom","Kern"],["King Smith","Kings"]]

怎么做。谢谢

【问题讨论】:

  • 什么包含sample 变量?
  • @IvanStoev 它包含dataFromDataTable中的数据
  • List&lt;string&gt; 里面有类似“{”、“John Doe”、“Freshno”、“}”的东西
  • @IvanStoev 是的,你是对的
  • 您需要将类型从List&lt;string&gt;更改为List&lt;object[]&gt;

标签: c# json datatable


【解决方案1】:
var data = employees.AsEnumerable().Select(x => x.ItemArray).ToList();
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(data);

希望对你有帮助

【讨论】:

  • 尝试实施解决方案,但在分配 public List&lt;string&gt; tabledata { get; set; } 时出错 我需要分配 tabledata 但得到 can not implicitly convert error。如何解决它
  • @Lara 我的怎么样,它仍然是相同的概念:3 和第一个答案
【解决方案2】:

我通常会这样做:

  var list = employees.AsEnumerable().Select(row =>
            new 
            {
                FirstName = row.Field<string>("FirstName"), // Column name was not specified please change this
                LastName = row.Field<string>("LastName") // As well as this column
            }).ToList();

var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(list);

请注意,最佳做法是在对象中添加键,因此在我们的示例中添加了 FirstNameLastName

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2020-02-15
    • 2020-02-11
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多