当前位置: 编程技术>.net/c#/asp.net
c#扩展datatable转json示例
来源: 互联网 发布时间:2014-10-30
本文导语: 代码如下:namespace PadWebServices.Model{ public static class DataTableExtender { public static string ToJson(this DataTable dt,string tbName) // this DataTable 标识对DataTable类的扩展 { StringBuilder JsonString...
代码如下:
namespace PadWebServices.Model
{
public static class DataTableExtender
{
public static string ToJson(this DataTable dt,string tbName) // this DataTable 标识对DataTable类的扩展
{
StringBuilder JsonString = new StringBuilder();
if (dt != null && dt.Rows.Count > 0)
{
JsonString.Append("{ ");
JsonString.Append("""+tbName+"":[ ");
for (int i = 0; i < dt.Rows.Count; i++)
{
JsonString.Append("{ ");
for (int j = 0; j < dt.Columns.Count; j++)
{
if (j < dt.Columns.Count - 1)
{
JsonString.Append(""" + dt.Columns[j].ColumnName.ToString() + "":" + """ + dt.Rows[i][j].ToString() + "",");
}
else if (j == dt.Columns.Count - 1)
{
JsonString.Append(""" + dt.Columns[j].ColumnName.ToString() + "":" + """ + dt.Rows[i][j].ToString() + """);
}
}
/*end Of String*/
if (i == dt.Rows.Count - 1)
{
JsonString.Append("} ");
}
else
{
JsonString.Append("}, ");
}
}
JsonString.Append("]}");
return JsonString.ToString();
}
else
{
return null;
}
}
}
}
在用到的时候,using扩展类所在的空间,就可以用了。
代码如下:
[WebMethod]
public string GetSwt_yBatch()
{
DataTable dt = new BllSwt_yBatch().GetSwt_yBatch();
return dt.ToJson("swt_yBatch");
}
这里的webservice返回的格式还是XML,只不过通过转成JSON的数据,在XML中是这样:
代码如下:
{ "swt_yBatch":[ { "sDoc_c":"test1","sDocAdd_c":"test2","nBatch":"1"},
{ "sDoc_c":"test3","sDocAdd_c":"test4","nBatch":"2"}, { "sDoc_c":"test3","sDocAdd_c":"test4","nBatch":"2"} ]}
没有转成JSON的数据是这样:
代码如下:
-
-
-
-
-
-
-
-
-
-
-
test1
test2
1
-
test3
test4
2
-
test3
test4
2