c#Json转换DataTable
c#Json转换Dictionary
public static DataTable Tabulate(string jsonContent, string test)
{
JArray array = JsonConvert.DeserializeObject(jsonContent) as JArray;
StringBuilder columns = new StringBuilder();
DataTable table = new DataTable();
JObject objColumns = array[0] as JObject;
构造表头
foreach (JToken jkon in objColumns.AsEnumerable<JToken>())
{
string name = ((JProperty)(jkon)).Name;
columns.Append(name + ",");
table.Columns.Add(name);
}
//向表中添加数据
for (int i = 0; i < array.Count; i++)
{
DataRow row = table.NewRow();
JObject obj = array[i] as JObject;
foreach (JToken jkon in obj.AsEnumerable<JToken>())
{
string name = ((JProperty)(jkon)).Name;
string value = ((JProperty)(jkon)).Value.ToString();
row[name] = value;
}
table.Rows.Add(row);
}
foreach (DataColumn column in table.Columns)
{
//获取表头
Console.WriteLine(column.ToString());
}
foreach (DataRow item in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
Console.WriteLine(column.ToString());
//输出内容值
Console.WriteLine(item[column]);
}
}
return table;
}
public static List<Dictionary<String, String>> Tabulate(string jsonContent)
{
List<Dictionary<String, String>> resList = new List<Dictionary<string, string>>();
JArray array = JsonConvert.DeserializeObject(jsonContent) as JArray;
JObject objColumns = array[0] as JObject;
for (int i = 0; i < array.Count; i++)
{
Dictionary<String, String> dicKeyValues = new Dictionary<string, string>();
JObject obj = array[i] as JObject;
foreach (JToken jkon in obj.AsEnumerable<JToken>())
{
string name = ((JProperty)(jkon)).Name;
string value = ((JProperty)(jkon)).Value.ToString();
dicKeyValues.Add(name, value);
}
resList.Add(dicKeyValues);
}
return resList;
}