当前位置:首页 > 服务端 > 把DataTable转换为泛型List或是JSON

把DataTable转换为泛型List或是JSON

2022年11月09日 20:21:11服务端6

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

Insus.NET有把这个转换功能写成一个扩展方法:
把DataTable转换为泛型List<T>或是JSON _ JavaClub全栈架构师技术笔记

方法源代码:

把DataTable转换为泛型List<T>或是JSON _ JavaClub全栈架构师技术笔记
 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:
把DataTable转换为泛型List<T>或是JSON _ JavaClub全栈架构师技术笔记

 

方法源代码:

把DataTable转换为泛型List<T>或是JSON _ JavaClub全栈架构师技术笔记
 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

 

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

作者:Insus.NET
来源链接:https://www.cnblogs.com/insus/p/5034995.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/69060.html

标签: List
分享给朋友:

“把DataTable转换为泛型List或是JSON” 的相关文章

flutter开发之必须掌握的dart知识点:list,set,map

要说,List在我的开发使用中,确实是最为频繁的了,那么如何使用list,也就成了一个问题,list提供的方法又有哪些 这些都是需要掌握理解的。 首先第一个, 对于固定长度的list,如何删除添加元素呢 void main() {...

Java集合之LinkedList

Java集合之LinkedList

一、LinkedList概述 1.初识LinkedList 上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。 LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储...

java ArrayList 转 string、string 转 ArrayList

string 转 ArrayList 先将字符串按照某个字符切割,转为string数组 然后用Arrays的asList方法,将数组转为List public class test1 { public static void m...

java分割String字符串成list

示例: String sn = “1234,567,8910”; List<String> snList = Arrays.asList(sn.split(",")); 作者:三水小鱼干 来源链接:https:...

HTML5中datalist标签的使用

HTML5中datalist标签的使用

datalist是html5中出现的新标签,它需要配合input输入框来使用,它的作用就是定义了input可能要输入的值(可以被快捷选择), 定义一个datalist的标签需要给他一个id,input就是根据id来与其绑定的,datalist中的opti...

Java中ArrayList相关的5道面试题

本文参考了 《关于ArrayList的5道面试题 》  1、ArrayList的大小是如何自动增加的? 这个问题我想曾经debug过并且查看过arraylist源码的人都有印象,它的过程是:当试图在一个arraylist中增加一个对象时,Jav...

Java集合中:List、Set、map的区别和具体的使用场景和高频问题解析,面试必问

Java集合中:List、Set、map的区别和具体的使用场景和高频问题解析,面试必问

目录 1.Collection集合体系的继承树如下: Collection集合中的主要方法: 2.Map集合体系的继承树如下所示: Map集合中的常见方法: 3. Java集合类基本概念 3.1 Java容器类类库的用途是"保存对象",并将其划...

Java中List集合去除重复数据的六种方法

1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1...

java集合(arraylist详解)

java集合(arraylist详解)

一、ArrayList概述       ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操...

Java——string[] 和List的区别

一直对string[]和List<string>定义不怎么清楚,特地总结一下:        string[]数组里面是存放string型的值,List<string>是存放str...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。