求Json转换为dataset的类 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static DataTable Json2DataTable(string strJson) { var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase); string strName = rg.Match(strJson).Value; DataTable tb = null; strJson = strJson.Substring(strJson.IndexOf("[") + 1); strJson = strJson.Substring(0, strJson.IndexOf("]")); rg = new Regex(@"(?<={)[^}]+(?=})"); MatchCollection mc = rg.Matches(strJson); for (int i = 0; i < mc.Count; i++) { string strRow = mc[i].Value; string[] strRows = strRow.Split(','); if (tb == null) { tb = new DataTable(); tb.TableName = strName; foreach (string str in strRows) { var dc = new DataColumn(); string[] strCell = str.Split(':'); dc.ColumnName = strCell[0]; tb.Columns.Add(dc); } tb.AcceptChanges(); } DataRow dr = tb.NewRow(); for (int r = 0; r < strRows.Length; r++) { dr[r] = strRows[r].Split(':')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", ""); } tb.Rows.Add(dr); tb.AcceptChanges(); } return tb; } 通过Newtonsoft.Json就能搞定,能遍历,就有机会。http://www.cnblogs.com/gghxh/archive/2008/01/11/1035482.html 弱弱的问一下,有木有转换成dataset的啊,呵呵 Json2DataTable这个方法,无法处理不同深度的json变量,最保险的还是用成熟的转换组件。另 datatable是dataset的子集,楼主对基本概念,不是太了解。 我知道是子集,现在的问题是Json转dataset的问题啊 datatable插入到空的dataset里不会? 自己百度一下,会记忆深刻的。 服务器保存聊天记录的聊天室解决方案 求一正则表达式,从html中取出指定网址 求一超链接问题 fego是使用ASP2.0中的URL映射技术改变网址的吗? 我的VS.net2005找不到asp.net建立方法 实战性问题,请教高手 奇怪异常,请大家指教解决方法! 请问各位大虾怎么才能将从calendar继承的自定义控件不必放在form ranat=server里也可以显示 求一个超级链接的正则写法 请教各位:关于本地机web service发现的问题! 求一个SQL语句的linq写法 (200)xaml(一段代码) 转成 c#
{
var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
string strName = rg.Match(strJson).Value;
DataTable tb = null;
strJson = strJson.Substring(strJson.IndexOf("[") + 1);
strJson = strJson.Substring(0, strJson.IndexOf("]"));
rg = new Regex(@"(?<={)[^}]+(?=})");
MatchCollection mc = rg.Matches(strJson);
for (int i = 0; i < mc.Count; i++)
{
string strRow = mc[i].Value;
string[] strRows = strRow.Split(',');
if (tb == null)
{
tb = new DataTable();
tb.TableName = strName;
foreach (string str in strRows)
{
var dc = new DataColumn();
string[] strCell = str.Split(':');
dc.ColumnName = strCell[0];
tb.Columns.Add(dc);
}
tb.AcceptChanges();
}
DataRow dr = tb.NewRow();
for (int r = 0; r < strRows.Length; r++)
{
dr[r] = strRows[r].Split(':')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
}
tb.Rows.Add(dr);
tb.AcceptChanges();
}
return tb;
}
http://www.cnblogs.com/gghxh/archive/2008/01/11/1035482.html