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#程序设计有所帮助。