C# C数据表到Json?
我希望将DataTable作为Json格式显示在图表上C# C数据表到Json?,c#,json,datatable,C#,Json,Datatable,我希望将DataTable作为Json格式显示在图表上 public JsonResult GetDataTable() { DataTable dt = new DataTable(); dt.Columns.Add("Jan"); dt.Columns.Add("Feb"); dt.Columns.Add("Mar"); dt.Columns.Add("Apr"); for (int i = 0; i < 10; i++) {
public JsonResult GetDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("Jan");
dt.Columns.Add("Feb");
dt.Columns.Add("Mar");
dt.Columns.Add("Apr");
for (int i = 0; i < 10; i++)
{
dt.Rows.Add(i * 5, i * 10, i * 15, i * 11);
}
// JsonDataTable = dt to Json
return new JsonResult
{
Data = new
{
success = true,
chartData = JsonDataTable
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
如何将DataTable转换为Json
谢谢。在数据表上应用AsEnumerable方法,然后在该数据表上应用一些LINQ以获得所需的形式
var thatList=(from p in dt.AsEnumerable()
select new {
Jan= p.Field<string>("Jan"),
Feb = p.Field<string>("Feb"),
Mar = p.Field<string>("Mar"),
Apr = p.Field<string>("Apr")
}).ToList();
对数据表应用AsEnumerable方法,然后对其应用一些LINQ,以获得所需的形式
var thatList=(from p in dt.AsEnumerable()
select new {
Jan= p.Field<string>("Jan"),
Feb = p.Field<string>("Feb"),
Mar = p.Field<string>("Mar"),
Apr = p.Field<string>("Apr")
}).ToList();
您可以使用它在许多其他类型中自动序列化数据表!到JSON。您可以使用它在许多其他类型中自动序列化数据表!到JSON。为什么不试试这样的方法:
public static class JSONEncoderHelper
{
public static string FromXML(DataTable table)
{
StringBuilder sbuilder = new StringBuilder();
sbuilder.Append("{\"");
sbuilder.Append(table.TableName);
sbuilder.Append("\":[");
bool first = true;
foreach (DataRow drow in table.Rows)
{
if (first)
{
sbuilder.Append("{");
first = false;
}
else
sbuilder.Append(",{");
bool firstColumn = true;
foreach (DataColumn column in table.Columns)
{
if (firstColumn)
{
sbuilder.Append(string.Format("\"{0}\":\"{1}\"", column.ColumnName, drow[column].ToString()));
firstColumn = false;
}
else
sbuilder.Append(string.Format(",\"{0}\":\"{1}\"", column.ColumnName, drow[column].ToString()));
}
sbuilder.Append("}");
}
sbuilder.Append("]}");
return sbuilder.ToString();
}
}
你现在要做的就是重构我在2分钟内完成的helper类
:你为什么不试试这样的东西呢:
public static class JSONEncoderHelper
{
public static string FromXML(DataTable table)
{
StringBuilder sbuilder = new StringBuilder();
sbuilder.Append("{\"");
sbuilder.Append(table.TableName);
sbuilder.Append("\":[");
bool first = true;
foreach (DataRow drow in table.Rows)
{
if (first)
{
sbuilder.Append("{");
first = false;
}
else
sbuilder.Append(",{");
bool firstColumn = true;
foreach (DataColumn column in table.Columns)
{
if (firstColumn)
{
sbuilder.Append(string.Format("\"{0}\":\"{1}\"", column.ColumnName, drow[column].ToString()));
firstColumn = false;
}
else
sbuilder.Append(string.Format(",\"{0}\":\"{1}\"", column.ColumnName, drow[column].ToString()));
}
sbuilder.Append("}");
}
sbuilder.Append("]}");
return sbuilder.ToString();
}
}
你现在要做的就是重构我在2分钟内完成的helper类
:基本上,您可以忘记.NET Fx中内置的关于JSON的任何内容,您会感觉非常好。JSON.NET工作正常,令人难以置信。自从我使用JSON.NET以来,我省下了这么多的麻烦:你基本上可以忘记.NET Fx中内置的关于JSON的任何东西,你会感觉非常好。JSON.NET工作正常,令人难以置信。自从我使用JSON.NET以来,已经节省了这么多的头发:可能重复的