私のアプリはクライアントとサーバーの2つに分かれています。 サーバー側はSQLデータベースに質問し、結果をDataTableに格納します。 次に、次の関数を使用して、DataTableをJsonに変換してクライアントに送信します。空のDataTableからJsonへ列名
問題が発生した場合は、空の文字列が表示されます。 クライアント側が空のデータテーブルを表示できるようにする文字列を取得したいと思いますが、列名を使用すると、列ヘッダーが表示されます。ここで
は、JSONへのDataTableに変換するサーバ側の関数である。
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);
}
そしてここでは、背中のDataTableにJSONを変換するために、クライアント側の機能である:中
return (DataTable)JsonConvert.DeserializeObject(clientSoap.dataCommand(command), (typeof(DataTable)));
感謝前進 !!
はNewtonSoft DLLをしてみてください。 string jsonString = string.Empty; jsonString = JsonConvert.SerializeObject(table); –
私は@viveknunaと一緒に行く。 newtonsoftを試してみてください。それはNuGetを介してavaiableです。あなたは醜いDataTablesの使用をやめて、すばらしいオブジェクトとList:)を使ってすべてのものを作ることができます:) Newtonsoftパッケージはうまく動作します。 – Sebi
@セビー、私はそれを1時間前に追加するが、私はそれを使用する方法を本当に理解していない。私はデータテーブル内のデータベースから結果を得て、それから? – Eytan