zoukankan      html  css  js  c++  java
  • C# 将 Json 解析成 DateTable

    #region 将 Json 解析成 DateTable ///  
    /// 将 Json 解析成 DateTable。
    /// Json 数据格式如: ///
    {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
    ///
    ///要解析的 Json 字符串
    /// 返回 DateTable public 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].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();
    }
    return tb; }
    #endregion
    1
     
    1
     

    格式如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    {
        table: [
            {
                column1: 1,
                column2: 2,
                column3: 3
            },
            {
                column1: 1,
                column2: 2,
                column3: 3
            }
        ]
    }

     

    例如:

    1
    [{Code:MetaDataId,Name:MetaDataId},{Code:MetadataCode,Name:编号},{Code:SolutionName,Name:名称}]

    格式化后:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [
        {
            Code: MetaDataId,
            Name: MetaDataId
        },
        {
            Code: MetadataCode,
            Name: 编号
        },
        {
            Code: SolutionName,
            Name: 名称
        }
    ]

     

  • 相关阅读:
    挺有意思的HBase日志+Splunk
    eclipse连接远程hadoop集群开发时权限不足问题解决方案
    auxiliary variable(辅助变量)的引入
    auxiliary variable(辅助变量)的引入
    十万个为什么 —— 自然的好奇
    十万个为什么 —— 自然的好奇
    高级鸡汤
    高级鸡汤
    protobuf反射详解
    思想实验(逻辑思维)解题
  • 原文地址:https://www.cnblogs.com/gc2013/p/4213807.html
Copyright © 2011-2022 走看看