在Newtonsoft.Json无法把DataRow转换成Model对象的情况下的解决方案

原创 2017年06月24日 23:20:02

使用Newtonsoft.Json经常会碰到一些莫名奇妙的问题,比方说它有时候没有办法把DataTable.Rows[0]转换成一个Model对象,下面我们提供一段代码来解决这个问题:


技术要点:使用了反射

转换方法,使用实例:
var Model = new MyModel();
var dt = SqlHelper.GetDt("");
Model = TableRowToModel(Model,Dt.Rows[0]);
//这是具体方法
public static T TableRowToModel<T>(T objmodel, DataRow dtRow)
{
    foreach (PropertyInfo info in typeof(T).GetProperties())
    {
        string name = info.Name;
        if (dtRow.Table.Columns.Contains(name))
        {
            if (!info.PropertyType.IsGenericType)
            {
                info.SetValue(objmodel, string.IsNullOrEmpty(dtRow[name].ToString()) ? null : Convert.ChangeType(dtRow[name], info.PropertyType), null);
            }
            else if (info.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
            {
                info.SetValue(objmodel, string.IsNullOrEmpty(dtRow[name].ToString()) ? null : Convert.ChangeType(dtRow[name], Nullable.GetUnderlyingType(info.PropertyType)), null);
            }
        }
    }
    return objmodel;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Newtonsoft.Json高级用法

转自:http://www.cnblogs.com/yanweidie/p/4605212.html Newtonsoft.Json高级用法   手机端应用讲究速度快,体验好。刚好手头上的一个项...
  • zhichao2001
  • zhichao2001
  • 2015年06月29日 13:15
  • 24275

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

这篇文章主要介绍了C#中把Datatable转换为Json的5个代码实例,需要的朋友可以参考下 实例一: 复制代码 代码如下: /// /// Datatable转换为Json ...
  • a6225301
  • a6225301
  • 2015年07月23日 22:42
  • 2162

newTonSoft.Json进行序列化和反序列化

添加下面两句: using Newtonsoft.Json;   using Newtonsoft.Json.Converters;     代码: ===================...
  • airingyuan
  • airingyuan
  • 2012年11月07日 17:28
  • 3704

Newtonsoft.Json高级用法

基本用法   Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity的。下面分别举例说明序列化和反序列化。 DataTab...
  • stwuyiyu
  • stwuyiyu
  • 2016年04月19日 14:56
  • 4864

DataTable 转换成 Json的3种方法

在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List、DataTable转换为Json格式。特别在使用Extjs框架的时候,Ajax异步请求的数...
  • c1113072394
  • c1113072394
  • 2016年11月02日 20:36
  • 21505

在后台把DataTable组织成JSON,送到前台动态填充UltraWebGrid

使用的库是:Newtonsoft.Json 为asp.net 3.5开发的 Beta4版本,获取数据库数据用的是Microsoft EnterpriseLibrary 4.1其中扩展了这个库的功能,使...
  • lee576
  • lee576
  • 2009年08月29日 22:56
  • 4067

Newtonsoft.Json高级用法

Newtonsoft.Json使用总结
  • xiaouncle
  • xiaouncle
  • 2016年09月08日 13:18
  • 2084

c#常用的Datable转换为json,以及json转换为DataTable操作方法

/*============================================================================== * * Filename: Dat...
  • kissdeath
  • kissdeath
  • 2014年01月23日 17:34
  • 24295

DataRow的序列化问题

  来源:CSDN  作者:kroll在.net里,DataRow类型的对象是不支持序列化的,那么如果在一个需要序列化的对象中含有DataRow类型的字段该怎么办呢?呵呵,幸好Datatable是支持...
  • 21aspnet
  • 21aspnet
  • 2004年10月29日 20:45
  • 3629

将DataRow 返回为一个实体类。

将DataRow 返回为一个实体类。 /// /// 通过DataRow 填充实体 /// /// /// ...
  • Houluoxuan_168
  • Houluoxuan_168
  • 2009年12月02日 23:46
  • 3645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Newtonsoft.Json无法把DataRow转换成Model对象的情况下的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)