我已经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