如何在C#中从DataTable创建JSON文件

时间:2013-11-22 11:24:57

标签: c# sql-server json

我已经从SQL Server创建了DataTable。代码如下:

protected void BindGridviewData()
    {
        StringBuilder str = new StringBuilder();
        SqlConnection con = new SqlConnection("Data Source=INBDQ2WK2LBCD2S\\SQLEXPRESS;Initial Catalog=MCAS;Integrated Security=SSPI");
        SqlDataAdapter adp = new SqlDataAdapter("select top 10 * from test4 order by Id desc", con);
        DataTable dt = new DataTable();
        adp.Fill(dt);


    }

现在如何从数据表

创建JSON文件

2 个答案:

答案 0 :(得分:5)

使用JSON.NET

 string json = JsonConvert.SerializeObject(table, new Newtonsoft.Json.Formatting());

答案 1 :(得分:1)

我使用此方法将数据表转换为json。

  • 我创建了一个包含列名
  • 的类

例如

internal class myObj
{
    public string PrimaryKey{ get; set; }
    public string FirstColumn{ get; set; }
    //And so on...
}

然后我在Obj的List中转换dataTable

private List<MyObj> test(DataTable dt)
{

    var convertedList = (from rw in dt.AsEnumerable()
               select new MyObj()
               {
                   ID = Convert.ToInt32(rw["ID"]),
                   FirstColumn = Convert.ToString(rw["FirstColumn"])
                   //etc...
               }).ToList();

    return convertedList;
}

最后我使用JsonConvert.SerializeObject(obj)(从JSon.Net看看here

using Newtonsoft.Json;

然后我序列化列表

string json = JsonConvert.SerializeObject(test(myDataTable));