在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;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013542549/article/details/73695579

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

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

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

/*============================================================================== * * Filename: Dat...
  • kissdeath
  • kissdeath
  • 2014-01-23 17:34:42
  • 24874

DataRow的序列化问题

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

Newtonsoft.Json高级用法

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

DataTable 转换成 Json的3种方法

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

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

添加下面两句: using Newtonsoft.Json;   using Newtonsoft.Json.Converters;     代码: ===================...
  • airingyuan
  • airingyuan
  • 2012-11-07 17:28:34
  • 3738

获取DataRow[]的值

首先,DataRow[] dr = dt.Select(“t1=‘a’”); 得出的结果是一个数组,你只要循环这个数组就好了。 string x=""; if (dr.Length > 0) { ...
  • ncqqbesny
  • ncqqbesny
  • 2014-04-02 17:03:42
  • 5850

DataRow属性

 看了网上以及书籍上的一些资料,总结一些DataRow的体会:DataRow属性可以看到,DataColumn对象集合表示了表的模式(Schema)。DataTable通过内部的DataColumnC...
  • zhuiyang1986
  • zhuiyang1986
  • 2007-06-13 16:06:00
  • 2620

支持DataRow类型显现转换为Model类型的Model模板(动软,C#)

using System; using System.Text; using Syste
  • showtime5156
  • showtime5156
  • 2011-10-04 09:31:23
  • 2983

关于使用newtonsoft 解析json字符串,即是将json字符串转换成json对象的写法

首先将newtonsoft 引用到工程中,解析json字符串有两种格式,一种是单一的json字符串,另一种是json字符串数据格式 1,如果是单一的一条json字符串,则采用如下方法: string ...
  • u010116861
  • u010116861
  • 2015-12-01 10:22:00
  • 5534
收藏助手
不良信息举报
您举报文章:在Newtonsoft.Json无法把DataRow转换成Model对象的情况下的解决方案
举报原因:
原因补充:

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