时间:2021-05-20
复制代码 代码如下:
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中是这样:
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">{ "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"} ]}</string>
没有转成JSON的数据是这样:
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8" ?>
- <DataSet xmlns="http://tempuri.org/">
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://:xml-diffgram-v1">
- <NewDataSet xmlns="">
- <Table1 diffgr:id="Table11" msdata:rowOrder="0">
<sDoc_c>test1</sDoc_c>
<sDocAdd_c>test2</sDocAdd_c>
<nBatch>1</nBatch>
</Table1>
- <Table1 diffgr:id="Table12" msdata:rowOrder="1">
<sDoc_c>test3</sDoc_c>
<sDocAdd_c>test4</sDocAdd_c>
<nBatch>2</nBatch>
</Table1>
- <Table1 diffgr:id="Table13" msdata:rowOrder="2">
<sDoc_c>test3</sDoc_c>
<sDocAdd_c>test4</sDocAdd_c>
<nBatch>2</nBatch>
</Table1>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#实现Json转DataTable并导出Excel的方法。分享给大家供大家参考,具体如下:需求:有一个log文件,需要整理成Excel,日志文件
本文实例讲述了C#实现DataTable,List和Json转换的方法。分享给大家供大家参考,具体如下:1.将DataTable或Ilist转换成JSON格式u
本文实例讲述了C#实现集合转换成json格式数据的方法。分享给大家供大家参考,具体如下://////dataTable转换成Json格式/////////pub
本文实例讲述了C#实现将json转换为DataTable的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:#region将json转换为Data
C#中已经有JavaScriptSerializer类可以将json数据给反序列化为对象//////JSON文本转对象,泛型方法//////类型///JSON文