如何使用json.net将c#通用列表转换为json?

我正在将我的数据表转换为c#通用列表。

DataTable dt = mydata(); List list = dt.AsEnumerable().ToList(); 

现在我如何使用json.net将此list转换为json? 任何建议。

json格式的样本应该是这样的,

 {"Table" : [{"userid" : "1","name" : "xavyTechnologies","designation" : "", "phone" : "9999999999","email" : "test@test.com","role" : "Admin","empId" : "", "reportingto" : ""},{"userid" : "2","name" : "chendurpandian","designation" : "softwaredeveloper","phone" : "9566643707","email" : "chendur.pandia@gmail.com", "role" : "Super User","empId" : "1","reportingto" : "xavyTechnologies"}, {"userid" : "3","name" : "sabarinathan","designation" : "marketer","phone" : "66666666666","email" : "bala3569@gmail.com","role" : "User", "empId" : "2","reportingto" : "chendurpandian"}]} 

这是一个例子:

 using System; using System.Data; using Newtonsoft.Json.Linq; class Test { static void Main() { DataTable table = new DataTable(); table.Columns.Add("userid"); table.Columns.Add("phone"); table.Columns.Add("email"); table.Rows.Add(new[] { "1", "9999999", "test@test.com" }); table.Rows.Add(new[] { "2", "1234567", "foo@test.com" }); table.Rows.Add(new[] { "3", "7654321", "bar@test.com" }); var query = from row in table.AsEnumerable() select new { userid = (string) row["userid"], phone = (string) row["phone"], email = (string) row["email"] }; JObject o = JObject.FromObject(new { Table = query }); Console.WriteLine(o); } } 

文档: 使用Json.NET的LINQ to JSON

 var oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); string sJSON = oSerializer.Serialize(yourList); 

参考: http : //blogs.microsoft.co.il/blogs/pini_dayan/archive/2009/03/12/convert-objects-to-json-in-c-using-javascriptserializer.aspx