asp.net使用DataTable构造Json字符串的方法

网络编程 2025-03-24 22:23www.168986.cn编程入门

ASP.NET中DataTable构造Json字符串的奥秘

在ASP.NET开发中,我们经常需要将DataTable中的数据转换为Json字符串以便于前后端交互。本文将向你展示如何实现这一过程,深入DataTable,通过序列化将其转化为Json格式。

一、使用JavaScriptSerializer实现DataTable到Json的转换

这里有一个方法Dtb2Json,它接受一个DataTable作为参数,然后使用JavaScriptSerializer进行序列化。遍历DataTable的每一行和每一列,将列名和对应的值存储在一个Dictionary中,然后将所有的Dictionary对象加入到ArrayList中。对整个ArrayList进行序列化,生成Json字符串。具体代码如下:

```csharp

private string Dtb2Json(DataTable dtb)

{

JavaScriptSerializer jss = new JavaScriptSerializer();

System.Collections.ArrayList dic = new System.Collections.ArrayList();

foreach (DataRow dr in dtb.Rows)

{

System.Collections.Generic.Dictionary drows = new System.Collections.Generic.Dictionary();

foreach (DataColumn dc in dtb.Columns)

{

drow.Add(dc.ColumnName, dr[dc.ColumnName]);

}

dic.Add(drow);

}

return jss.Serialize(dic);

}

```

二、手动构建Json字符串

除了使用序列化工具,我们还可以手动构建Json字符串。CreateJsonParameters方法展示了这一过程。它首先创建一个StringBuilder对象,然后遍历DataTable的每一行和每一列,将列名和对应的值以Json的格式添加到StringBuilder中。这个方法更直观,可以更好地控制输出的Json格式。具体代码如下:

```csharp

public static string CreateJsonParameters(DataTable dt)

{

System.Text.StringBuilder sb = new System.Text.StringBuilder();

if (dt != null && dt.Rows.Count > 0)

{

sb.Append("[");

for (int i = 0; i < dt.Rows.Count; i++)

{

sb.Append("{");

for (int j = 0; j < dt.Columns.Count; j++)

{

if (j < dt.Columns.Count - 1)

{

sb.Append("/" + dt.Columns[j].ColumnName + ":/\"" + dt.Rows[i][j].ToString() + "\",");

}

else

{

sb.Append("/" + dt.Columns[j].ColumnName + ":/\"" + dt.Rows[i][j].ToString() + "\"");

}

}

if (i == dt.Rows.Count - 1)

{

sb.Append("}");

}

else

{

sb.Append("},");

}

}

sb.Append("]");

}

else { return null; }

return sb.ToString();

}

```csharp希望本文能对你有所帮助,让你在ASP.NET程序设计中更加游刃有余。

上一篇:详解用Node.js写一个简单的命令行工具 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by