为了账号安全,请及时绑定邮箱和手机立即绑定

把DataTable转换为泛型List<T>或是JSON

标签:
JavaScript

在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable。为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为泛型List<T>或是JSON。

Insus.NET有把这个转换功能写成一个扩展方法:


方法源代码:

 public static List<T> ToList<T>(this DataTable dt)        {            var columnNames = dt.Columns.Cast<DataColumn>()                .Select(c => c.ColumnName)                .ToList();            var properties = typeof(T).GetProperties();            return dt.AsEnumerable().Select(row =>            {                var objT = Activator.CreateInstance<T>();                foreach (var pro in properties)                {                    if (columnNames.Contains(pro.Name))                        pro.SetValue(objT, row[pro.Name] == DBNull.Value ? string.Empty : row[pro.Name].ToString(), null);                }                return objT;            }).ToList();        }

View Code

 

把DataTable转换为JSON:

 

方法源代码:

 public static string ToJson(this DataTable table)        {            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();            foreach (DataRow row in table.Rows)            {                Dictionary<string, object> dict = new Dictionary<string, object>();                foreach (DataColumn col in table.Columns)                {                    dict[col.ColumnName] = row[col];                }                list.Add(dict);            }                                    return serializer.Serialize(list);        }

View Code

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消