C#实现JSON转Datatable或Dataset,验证通过立即结贴。 10

求C#实现JSON转Datatable或Dataset的代码,是json转datatable不是datatable转json。或者求一段解析以下内容的C#代码{"prod... 求C#实现JSON转Datatable或Dataset的代码,是json转datatable不是datatable转json。
或者求一段解析以下内容的C#代码

{"products":[["编号","名称"],["1","商品一"],["2","商品2"],["3","商品三"]]}
展开
 我来答
fantapear
2011-05-26 · TA获得超过107个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:166万
展开全部
网上有很多这方面的类
/// <summary>
/// 根据Json返回DateTable,JSON数据格式如:
/// {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
/// </summary>
/// <param name="strJson">Json字符串</param>
/// <returns></returns>
public static DataTable JsonToDataTable(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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JudgeOu
2011-05-27 · TA获得超过116个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:128万
展开全部
这是专门提供给.NET的JSON类库
http://james.newtonking.com/projects/json-net.aspx
老实说,不知道你能不能看懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式