C#将Json解析成DateTable的方法
本文实例讲述了C#将Json解析成DateTable的方法。分享给大家供大家参考。具体实现方法如下:
#region将Json解析成DateTable///
///将Json解析成DateTable。
///Json数据格式如:///
{table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
///
///要解析的Json字符串
///返回DateTablepublicDataTableJsonToDataTable(stringstrJson)
{
//
取出表名varrg=newRegex(@(?<={)[^:]+(?=:[),RegexOptions.IgnoreCase);
stringstrName=rg.Match(strJson).Value;DataTabletb=null;
//去除表名strJson=strJson.Substring(strJson.IndexOf([)+1);
strJson=strJson.Substring(0,strJson.IndexOf(]));
//获取数据
rg=newRegex(@(?<={)[^}]+(?=}));MatchCollectionmc=rg.Matches(strJson);
for(inti=0;i<mc.Count;i++){
stringstrRow=mc[i].Value;string[]strRows=strRow.Split(',');
//创建表if(tb==null){tb=newDataTable();
tb.TableName=strName;foreach(stringstrinstrRows)
{vardc=newDataColumn();
string[]strCell=str.Split(':');
dc.ColumnName=strCell[0].Replace(,);
tb.Columns.Add(dc);}
tb.AcceptChanges();
}//增加内容DataRowdr=tb.NewRow();
for(intj=0;j<strRows.Length;j++)
{dr[j]=strRows[j].Split(':')[1].Replace(,
);
}tb.Rows.Add(dr);
tb.AcceptChanges();
}
returntb;}
#endregion格式如下:
{
table:[
{
column1:1,
column2:2,
column3:3
},
{
column1:1,
column2:2,
column3:3
}
]
}例如:
[{Code:MetaDataId,Name:MetaDataId},{Code:MetadataCode,Name:编号},{Code:SolutionName,Name:名称}]格式化后:
[
{
Code:MetaDataId,
Name:MetaDataId
},
{
Code:MetadataCode,
Name:编号
},
{
Code:SolutionName,
Name:名称
}
]
希望本文所述对大家的C#程序设计有所帮助。