我的應用程序分爲兩部分:客戶端和服務器。 服務器端請求一個sql數據庫並將結果存儲在一個DataTable中。 然後,我使用下一個函數將DataTable轉換爲Json以將其發送給客戶端。空數據表到列名稱的Json
問題是當沒有結果時,我得到一個空字符串。 我想獲得一個字符串,這將允許客戶端顯示一個空的數據表但列名,我的意思是列標題!
這裏是在服務器端的功能,數據錶轉換成JSON:
public string ConvertDataTabletoString(DataTable dt)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
return serializer.Serialize(rows);
}
這裏是在客戶端的功能轉換JSON來的數據表背:
return (DataTable)JsonConvert.DeserializeObject(clientSoap.dataCommand(command), (typeof(DataTable)));
謝謝提前!
嘗試NewtonSoft DLL。字符串jsonString = string.Empty; jsonString = JsonConvert.SerializeObject(table); –
我去@viveknuna。試試newtonsoft。它通過NuGet可用。你可以停止使用醜陋的DataTables,並使整個東西與奇妙的對象和列表 :) Newtonsoft軟件包與它很好地工作。 –
Sebi
@Sebi,我在一個小時前添加它,但我並不真正瞭解如何使用它。我從數據庫中獲取數據庫的結果然後呢? – Eytan