C# 将 Json 解析成 DateTable
来源:互联网 发布:淘宝直播主播排名榜 编辑:程序博客网 时间:2024/06/06 12:56
#region 将 Json 解析成 DateTable /// <summary> /// 将 Json 解析成 DateTable。 /// Json 数据格式如: /// {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]} /// </summary> /// <param name="strJson">要解析的 Json 字符串</param> /// <returns>返回 DateTable</returns> public DataTable JsonToDataTable(string strJson) { // 取出表名 var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase); string strName = rg.Match(strJson).Value; DataTable tb = null; //数据为空返回 if (strJson.Trim().Length == 0) { return tb; } // 检查strJson是否是json字符串 if (!JsonSplit.IsJson(strJson)) { return tb; } try { // 去除表名 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].Replace("\"", ""); tb.Columns.Add(dc); } tb.AcceptChanges(); } // 增加内容 DataRow dr = tb.NewRow(); for (int j = 0; j < strRows.Length; j++) { dr[j] = strRows[j].Split(':')[1].Replace("\"", ""); } tb.Rows.Add(dr); tb.AcceptChanges(); } } catch (Exception ee) { MessageBox.Show(ee.ToString()); } return tb; } #endregion
识别一个字符串是否Json格式:http://blog.csdn.net/jiankunking/article/details/42531209
格式如下:
{ "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": "名称" }]
代码格式化工具:http://tool.oschina.net/codeformat/xml
转化后效果如下:
代码来源:http://zhidao.baidu.com/link?url=Qf5sRgBcmErNAAaquKuMZSesDtTLpqWzy61N3sBBV2n4sqdBX-X3Zn-e5EEWO8KmlkhzO8Tbkv31yUbYpwSh076QrXmCgHseCiMjkATl1rO
0 0
- C# 将 Json 解析成 DateTable
- C#将DateTable表数据导出到Excel中
- c# 将实体类集合转化为datetable格式案例
- DateTable,DateSet 转Json
- unity C#将excel解析为json
- C# JSON解析类,将json转成实体类
- 将文本内容解析成json格式
- 将对象解析成json字符串
- 将JSON的字符串解析成JSON数据格式
- 实体类转换成DateTable,
- C# 解析JSON -- Newtonsoft.Json
- C# 解析json Newtonsoft.json
- c# json数据解析——将字符串json格式数据转换成对象
- c#后台将数据转换为json字符串,前台ajax解析json字符串
- 关于C#使用工具类解析JSON数据以及将类JSON化
- c#解析JSON总结
- C#解析JSON
- C# 解析 json
- 如何关闭MyEclipse的自动更新
- G_o_A_g_e_n_t不能使用解决方法
- VC包含目录、附加依赖项、库目录及具体设置
- 为什么String在Java中是不可变的
- linux shell 实现多线程
- C# 将 Json 解析成 DateTable
- java实现阶层计算器
- Android的用户输入处理
- 抽象类继承抽象类可以不重写父类的抽象方法,普通类继承抽象类必须重写父类中的抽象方法,实现接口也是同样的道理
- 软件概要设计做什么,怎么做
- NYOJ 285 寻找克隆人(map+计数)
- repeater控件实现分页
- android onTouch()与onTouchEvent()的区别
- SVN删除文件及其恢复