.net 数据表转换成json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net 数据表转换成json相关的知识,希望对你有一定的参考价值。

比如我通过查询在ASHX里面获得了一个表叫DT,怎么把这个DT转换成JSON类型的数据传给前台页面?然后前台js怎么使用这个传过去的json数据呢?就获得这个数据的第一条记录就好。。

Dt转换成Json一般可以通过以下的步骤来方便的转换
首先对应表做一个实体类,该类标记可序列化
首先查询数据库获取表数据(比如获取了一条)
编译该条记录实例化表实体类并根据字段名赋值
直接按照json格式序列化该实体类就获取了Json格式的数据(如果需要多条数据只需要一个List,然后序列化那个List就可以了)
下面这个我以前做的东西,核心就是将DT转换成实体类集合
/// <summary>
/// DataTable转换为List<Model>的通用类
/// </summary>
/// <typeparam name="T"><Model类型/typeparam>
public static IList<T> ConvertToModel(DataTable dt)

// 定义集合
IList<T> ts = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
string tempName = "";
foreach (DataRow dr in dt.Rows)

T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)

tempName = pi.Name;
//string objType = pi.PropertyType.Name;
// 检查DataTable是否包含此列
if (dt.Columns.Contains(tempName))

// 判断此属性是否有Setter
if (!pi.CanWrite) continue;
object value = dr[tempName];
if (value != DBNull.Value)

if (value is DateTime) value = value.ToString();
pi.SetValue(t, value, null);

else

if (value is DateTime) value = value.ToString();
if (value is String)
pi.SetValue(t, value.ToString(), null);



ts.Add(t);

return ts;


/// <summary>
/// 序列化对象
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string JSSerialize(object data)

System.Web.Script.Serialization.javascriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();
return ser.Serialize(data);


前台使用Json只需要反序列化话成对象,然后就像获取对象属性一样使用了,
你到百度上搜索序列化反序列化看看应该就明白了。
希望能帮到你……
参考技术A 可以写自定义方法,通过遍历DT来构造JSON的字符串,最好的直接使用json.net类,去网上搜就有了,很方便的。 参考技术B

以上是关于.net 数据表转换成json的主要内容,如果未能解决你的问题,请参考以下文章

json.net将string数据转换为List<>报错

json.net将string数据转换为List<>报错

如何用java实现list转换成json格式

asp.net MVC 怎么把数据库中取出的 数据 转换成json格式给easyui datagrid 控件

.NET Core 1.1日期解析无APiSQL Server数据转换JSON

asp.net中怎样把字符串转换成json