复制代码 代码如下:
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() + """);
}
}
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中是这样:
复制代码 代码如下:
{ "sDoc_c":"test3","sDocAdd_c":"test4","nBatch":"2"}, { "sDoc_c":"test3","sDocAdd_c":"test4","nBatch":"2"} ]}
没有转成JSON的数据是这样:
复制代码 代码如下:
-
-
-
-
-
-
-
-
-
-
-
-
-



