我已經Json的存儲在數據庫中,我反序列化爲數據表與幫助Newtonsoft.Json這樣如何在單循環中將行和列添加到數據表中?
string jsonString = "[myJsonfromDB....]";
//Deserialize to DataTable
DataTable dtSerialized = (DataTable)JsonConvert.DeserializeObject(jsonString, (typeof(DataTable)));
這使我產生像這個圖片其他各列未顯示
這裏我標籤是柱和值是列值。這兩列都將被移動到新的DataTable中,我將爲我的操作進一步處理。現在我的問題是,我想要在一個循環中執行它,而我在多個循環中執行,即首先添加列(在第一個循環中),然後添加列值(在第二個循環中)。目前我正在做這樣的
string colName = string.Empty;
// First Loop to add columns
foreach (DataRow dr in dtSerialized.Rows)
{
if (!string.IsNullOrEmpty(Utility.Instance.ToString(dr["label"])))
{
colName = prefix + "_" + Utility.Instance.ToString(dr["label"]).Replace(" ", string.Empty).Replace("/", "_").Replace("-", "_");
if (!dtResult.Columns.Contains(colName))
dtResult.Columns.Add(colName, typeof(string));
}
}
DataRow drSelect = dtResult.NewRow();
//Second loop to add column values
foreach (DataRow dr in dtSerialized.Rows)
{
if (!string.IsNullOrEmpty(Utility.Instance.ToString(dr["label"])))
{
colName = prefix + "_" + Utility.Instance.ToString(dr["label"]).Replace(" ", "").Replace("/", "_").Replace("-", "_");
drSelect[colName] = dr["value"];
}
}
dtResult.Rows.Add(drSelect);
dsResult.Tables.Add(dtResult);
這之後我已經
一樣多,我知道的是,第一DataRow的架構從數據表中建立再值可以加入清晰在上面的代碼中。現在,我怎樣才能在一個循環?或者我應該搜索替代方法,我不知道如何做到這一點。
在此先感謝
你猜對了@JohnG ..它正在使用一個循環和輕微的變化。謝謝 –
歡迎@ J.SMTBCJ15樂於幫助。 – JohnG