• 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: 名称
        }
    ]

     

  • 相关阅读:
    游戏中战斗伤害范围-弹道飞行
    游戏中战斗伤害范围攻击计算完整全版
    更加强健的线程模型,解决线程卡死,退出异常情况
    存在即合理,重复轮子orm java版本
    游戏里12方向,任意方向计算正前方矩形规则
    我是如何设计游戏服务器架构的
    游戏中精灵对象的属性功能设计
    看我是如何处理自定义线程模型---java
    面试和面试者如何保持心态
    谈谈枚举的新用法——java
  • 原文地址:https://www.cnblogs.com/gc2013/p/4213807.html
Copyright © 2020-2023  润新知