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

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

方法源代码:

  1. public static List<T> ToList<T>(this DataTable dt)
  2. {
  3. var columnNames = dt.Columns.Cast<DataColumn>()
  4. .Select(c => c.ColumnName)
  5. .ToList();
  6.  
  7. var properties = typeof(T).GetProperties();
  8.  
  9. return dt.AsEnumerable().Select(row =>
  10. {
  11. var objT = Activator.CreateInstance<T>();
  12.  
  13. foreach (var pro in properties)
  14. {
  15. if (columnNames.Contains(pro.Name))
  16. pro.SetValue(objT, row[pro.Name] == DBNull.Value ? string.Empty : row[pro.Name].ToString(), null);
  17. }
  18.  
  19. return objT;
  20. }).ToList();
  21. }

把DataTable转换为JSON:

方法源代码:

  1. public static string ToJson(this DataTable table)
  2. {
  3. List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
  4.  
  5. foreach (DataRow row in table.Rows)
  6. {
  7. Dictionary<string, object> dict = new Dictionary<string, object>();
  8.  
  9. foreach (DataColumn col in table.Columns)
  10. {
  11. dict[col.ColumnName] = row[col];
  12. }
  13. list.Add(dict);
  14. }
  15.  
  16. return serializer.Serialize(list);
  17. }

实例应用,可以从下面这篇可以参考:《创建与使用Web APIhttp://www.cnblogs.com/insus/p/5019088.html

把DataTable转换为泛型List<T>或是JSON的更多相关文章

  1. DataTable 转换为ArrayList 再转换成 json 格式

    //JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();        //javaScriptSeriali ...

  2. [工具类]DataTable与泛型集合List互转

    写在前面 工作中经常遇到datatable与list,对于datatable而言操作起来不太方便.所以有的时候还是非常希望通过泛型集合来进行操作的.所以这里就封装了一个扩展类.也方便使用. 类 方法中 ...

  3. 重构——DataTable转泛型

         泛型简单介绍         泛型能够最大限度的重用代码.保护类型的安全.提高性能.         泛型最常见的用途是创建集合类         泛型数据类型中使用的信息可在执行时通过反射 ...

  4. C#中把Datatable转换为Json的5个代码实例

    一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...

  5. Datatable转换为Json 然后,Json数据导入 js 档

    C#在里面Datatable转换为Json的5代码示例 /// <summary> /// Datatable转换为Json /// </summary> /// <pa ...

  6. Datatable转换为Json

    /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table"&g ...

  7. Datatable转换为Json 的方法

    /// <summary>         /// Datatable转换为Json         /// </summary>        /// <param n ...

  8. .NET DataTable转换为JSON格式的字符串

    在进行数据传递的时候,有时我们需要通过Ajax的方式或者其他的方式传递一个数据列表,可以将DataTable或者其他形式的数据列表转换为JSON的格式,通过Ajax实体的形式进行传递. 比如说: // ...

  9. 再谈使用Emit把Datatable转换为对象集合(List<T>)

    一.前因和存在的问题 前面我写了一篇<使用Emit把Datatable转换为对象集合(List<T>)>的博文,其实起源于我自己编写的一个orm工具(见前面几篇博文有介绍),里 ...

随机推荐

  1. Asp.Net MVC中使用ACE模板之Jqgrid

    第一次看到ACE模板,有种感动,有种相见恨晚的感觉,于是迅速来研究.它本身是基于bootstrap和jqueryui,但更nice,整合之后为后台开发节省了大量时间. 发现虽然不是完美,整体效果还是不 ...

  2. python 实现web框架simfish

    python 实现web框架simfish 本文主要记录本人利用python实现web框架simfish的过程.源码github地址:simfish WSGI HTTP Server wsgi模块提供 ...

  3. JavaScript 数组详解

    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活.强大,不像是Java等强类型高级语言数组只 ...

  4. springmvc下js控制表单提交(表单提交前检验,提交后获取json返回值)

    这个问题我搞了四天,终于搞懂.因为对js很不熟悉.郁闷的是后台代码出错总可以设置断点调试,前端js代码出错只能通过浏览器提供一些运行数据来分析,很不习惯. 首先说下逻辑:这是一个注册功能,我希望,注册 ...

  5. Java用来进行批量文件重命名,批量提取特定类型文件

    原因: 因为在网上下载视频教程,有的名字特别长,一般都是机构或者网站的宣传,不方便直接看到视频的简介,所以做了下面的第一个功能. 因为老师发的课件中,文件夹太多,想把docx都放在同一个文件夹下面,一 ...

  6. AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端

    对于HTTPS我在网上找了一堆资料看了下, 各种协议和证书已经有点晕了 最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确 如果客户端证书检查正确, ...

  7. Atiti  attilax主要成果与解决方案与案例rsm版

    Atiti  attilax主要成果与解决方案与案例rsm版 1. ##----------主要成果与解决方案与 参与项目1 ###开发流程系列1 ###架构系列 (au1 ###编程语言系列与架构系 ...

  8. fir.im Weekly - 2016 开年技术干货分享

    开年上班,北上广的技术er 陆续重返"人间".看到别人已返工写代码,竟然有种慌慌的感觉(ง •̀_•́)ง 勤奋好学如你,fir.im weekly 送上最新一波技术分享供你 &q ...

  9. iOS-SDWebImage

    我之前写过一篇博客,介绍缓存处理的三种方式,其中最难,最麻烦,最占内存资源的还是图片缓存,最近做的项目有大量的图片处理,还是采用了SDWebImage来处理,但是发现之前封装好的代码报错了.研究发现, ...

  10. javascript闭包学习例子

    javascript中的闭包个很让人头疼的概念.总结一下 闭包是指有权访问一个函数作用域中的变量的函数.创建闭包最常见的方式,是在一个函数内部创建另一个函数,用return返回出去. 使用闭包可能造成 ...