C# 将 Json 解析成 DateTable
2023-09-14 09:02:13 时间
/// 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;
// 去除表名
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
转化后效果如下:
相关文章
- C# 序列化与反序列化Serialization之Json Xml Binary Soap JavaScript序列化
- C#数据结构与算法揭秘六
- C# 调用存储过程操作 OUTPUT参数和Return返回值
- C#基础知识—父类和子类的关系
- 在C#中,Json的序列化和反序列化的几种方式总结
- C#实现邮件发送
- C#,Java,C -循环冗余检验:CRC-16-CCITT查表法
- 在C#中,Json的序列化和反序列化的几种方式总结
- c# 如何在一般处理程序中返回json
- C#中的DataSet、string、DataTable 、对象转换成Json
- C# 如何识别一个字符串是否Json格式
- C#的换行符和回车符在程序语句中如何表示?
- C# 中的动态创建技术
- C# 如何识别一个字符串是否Json格式
- C# 将 Json 解析成 DateTable
- C# 如何识别一个字符串是否Json格式
- CSharpGL(11)用C#直接编写GLSL程序
- C#解析JSON几种方式-整理
- C#开发的OpenRA的判断文件是否存在和目录文件读写
- C# 将MSMQ消息转换成Json格式 【优化】
- C#异步编程解析
- C#请求访问HTTP+JSON数据的解析
- C# 解析Json文件(使用NewtonJson库)
- C# 多线程与线程扫描器
- C#创建Windows窗体应用程序实例1【姓名输入】
- C# linq group by