c#擴展datatable轉(zhuǎn)json示例
更新時間:2014年05月05日 11:25:48 作者:
這篇文章主要介紹了c#擴展datatable轉(zhuǎn)json示例,需要的朋友可以參考下
復(fù)制代碼 代碼如下:
namespace PadWebServices.Model
{
public static class DataTableExtender
{
public static string ToJson(this DataTable dt,string tbName) // this DataTable 標(biāo)識對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擴展類所在的空間,就可以用了。
復(fù)制代碼 代碼如下:
[WebMethod]
public string GetSwt_yBatch()
{
DataTable dt = new BllSwt_yBatch().GetSwt_yBatch();
return dt.ToJson("swt_yBatch");
}
這里的webservice返回的格式還是XML,只不過通過轉(zhuǎn)成JSON的數(shù)據(jù),在XML中是這樣:
復(fù)制代碼 代碼如下:
<?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>
沒有轉(zhuǎn)成JSON的數(shù)據(jù)是這樣:
復(fù)制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8" ?>
- <DataSet xmlns="http://tempuri.org/">
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="Table1">
- <xs:complexType>
- <xs:sequence>
<xs:element name="sDoc_c" type="xs:string" minOccurs="0" />
<xs:element name="sDocAdd_c" type="xs:string" minOccurs="0" />
<xs:element name="nBatch" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com: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>
您可能感興趣的文章:
- C#中把DataTable、Dataset轉(zhuǎn)Json數(shù)據(jù)
- C#實現(xiàn)Json轉(zhuǎn)DataTable并導(dǎo)出Excel的方法示例
- C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)
- C#實現(xiàn)DataTable,List和Json轉(zhuǎn)換的方法
- C#實現(xiàn)將json轉(zhuǎn)換為DataTable的方法
- C#中的DataSet、string、DataTable、對象轉(zhuǎn)換成Json的實現(xiàn)代碼
- C#中把Datatable轉(zhuǎn)換為Json的5個代碼實例
- C#中把Json數(shù)據(jù)轉(zhuǎn)為DataTable
相關(guān)文章
基于C#實現(xiàn)的多生產(chǎn)者多消費者同步問題實例
這篇文章主要介紹了基于C#實現(xiàn)的多生產(chǎn)者多消費者同步問題,包括了加鎖與釋放鎖,以及對應(yīng)臨界資源的訪問。是比較實用的技巧,需要的朋友可以參考下2014-09-09Unity UI或3D場景實現(xiàn)跟隨手機陀螺儀的晃動效果
這篇文章主要介紹了Unity UI或3D場景實現(xiàn)跟隨手機陀螺儀的晃動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11Unity Shader實現(xiàn)圖形繪制(藍天白云大海)
這篇文章主要為大家詳細介紹了Unity Shader實現(xiàn)圖形繪制,藍天白云大海,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04