1

我在我的 MVC 应用程序中使用 Datatables 网格来显示数据。我不知道如何将包含通用列表的 Var 转换为 JSON,而 JSON 又将成为 Datatables 的输入。

这是数据表的 JSON 格式:

return Json(new 
{
  aaData = new[] {
    new [] { "Trident", "Internet Explorer 4.0", "Win 95+", "4", "X" },
    new [] { "Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", "1.8", "A" },
    new [] { "Webkit", "iPod Touch / iPhone", "iPod", "420.1", "A" },
  }
}, JsonRequestBehavior.AllowGet);

但上面的一个是硬编码的,我在运行时得到通用列表,如何迭代和更改为上面的 JSON 格式。

这是我的代码。

public void GetReport()
        {
            var ReportData = _homeService.GetReportDatafromDB();

            if (ReportData .Count > 0)
            {
               //Dont no how to convert for JSON data format here
            }
       }
4

2 回答 2

3

使用 foreach 语法,它看起来像这样:

var aaData = new List<string[]>();
foreach(var l in ReportData){
    aaData.Add(new [] {l.Property1, l.Property2, l.Property3, l.Property4});
}

var thisIsYourResult = aaData.ToArray();
于 2013-01-17T07:00:32.123 回答
1

这是如何获得所需格式的示例:

为了便于练习,让我们使用“模型”作为数据对象类:

public class Model{
    public string Property1{get;set;}
    public string Property2{get;set;}
    public string Property3{get;set;}
    public string Property4{get;set;}
}

然后你只需要检查它并创建你想要的 json 结构:

var ReportData = new List<Model>{
new Model{Property1 = "Trident", Property2 = "Internet Explorer 4.0", Property3 = "Win 95+", Property4 = "4"},
new Model{Property1 = "Gecko", Property2 = "Firefox 1.5", Property3 = "Win 98+ / OSX.2+", Property4 = "1.8"}
};

var aaData = ReportData.Select(l => new [] {l.Property1, l.Property2, l.Property3, l.Property4} ).ToArray();
于 2013-01-17T06:06:46.097 回答