c#Json转DataTable的几种方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#Json转DataTable的几种方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7202字,纯文字阅读大概需要11分钟。
内容图文
public string JsonToTable(string json,string type)
{
string a = "";
DataTable dTb = new DataTable();
DataTable result;//处理json数据
if(type == "1")
#region
{
try
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
if (arrayList.Count > 0)
{
foreach (Dictionary<string, object> dictionary in arrayList)
{
if (dictionary.Keys.Count<string>() == 0)
{
result = dTb;
return a;
}
//Columns
if (dTb.Columns.Count == 0)
{
foreach (string current in dictionary.Keys)
{
dTb.Columns.Add(current, dictionary[current].GetType());
}
}
//Rows
DataRow dataRow = dTb.NewRow();
foreach (string current in dictionary.Keys)
{
dataRow[current] = dictionary[current];
}
dTb.Rows.Add(dataRow); //循环添加行到DataTable中
}
}
}
catch { }
}
#endregion
if(type == "2")
#region
{
try
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
if(arrayList.Count > 0 )
{
foreach (Dictionary<string, object> dictionary in arrayList)
{
if (dictionary.Keys.Count<string>() == 0)
{
result = dTb;
//数据处理
return a;
}
//
if (dTb.Columns.Count == 0)
{
foreach (string current in dictionary.Keys)
{
if (current != "data")
dTb.Columns.Add(current, dictionary[current].GetType());
else
{
ArrayList list = dictionary[current] as ArrayList;
foreach (Dictionary<string, object> dic in list)
{
foreach (string key in dic.Keys)
{
dTb.Columns.Add(key, dic[key].GetType());
}
break;
}
}
}
}
string root = "";
foreach (string current in dictionary.Keys)
{
if (current != "data")
root = current;
else
{
ArrayList list = dictionary[current] as ArrayList;
foreach (Dictionary<string, object> dic in list)
{
DataRow dataRow = dTb.NewRow();
dataRow[root] = dictionary[root];
foreach (string key in dic.Keys)
{
dataRow[key] = dic[key];
}
dTb.Rows.Add(dataRow);
}
}
}
}
}
}
catch
{
}
}
#endregion
if(type == "3")
#region
{
try
{
dTb.Columns.Add("id");
dTb.Columns.Add("mac");
dTb.Columns.Add("rssi");
dTb.Columns.Add("ch");
dTb.Columns.Add("ts");
dTb.Columns.Add("tmc");
dTb.Columns.Add("tc");
dTb.Columns.Add("ds");
dTb.Columns.Add("essid");
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
if (arrayList.Count > 0)
{
foreach (Dictionary<string, object> dictionary in arrayList)
{
if (dictionary.Keys.Count<string>() == 0)
{
result = dTb;
return a;
}//Rows
string root = "";
foreach (string current in dictionary.Keys)
{
if (current != "data")
root = current;
else
{
ArrayList list = dictionary[current] as ArrayList;
foreach (Dictionary<string, object> dic in list)
{
DataRow dataRow = dTb.NewRow();
dataRow[root] = dictionary[root];
foreach (string key in dic.Keys)
{
dataRow[key] = dic[key];
}
dTb.Rows.Add(dataRow);
}
}
}
}
}
}
catch
{
}
}
#endregion
result = dTb;
a = DataTableToJson(dTb);
return a;
}
内容总结
以上是互联网集市为您收集整理的c#Json转DataTable的几种方法全部内容,希望文章能够帮你解决c#Json转DataTable的几种方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。