public static string DataTableToJson(DataTable dt)
{
List<object> list = new List<object>();
foreach(DataRow dr in dt.Rows)
{
Dictionary<string, object> dic = new Dictionary<string, object>();
foreach(DataColumn col in dt.Columns)
{
dic.Add(col.ColumnName, dr[col.ColumnName]);
}

dynamic obj = new ExpandoObject();
foreach(KeyValuePair<string,object> item in dic)
{
((IDictionary<string, object>)obj).Add(item.Key, item.Value);
}
list.Add(obj);
}
string json = new JavaScriptSerializer().Serialize(list);
return

重点:dynamic obj = new ExpandoObject();
匿名类的动态添加对象