• DataTable、Dataset转Json


    DataTable、Dataset转Json

    一、DataTable转Json

      public static string DataTableToJson1(string jsonName, DataTable dt)
            {
                StringBuilder Json = new StringBuilder();
                Json.Append("{"" + jsonName + "":[");
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Json.Append("{");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            Json.Append(""" + dt.Columns[j].ColumnName.ToString() + "":"" + dt.Rows[i][j].ToString() + """);
                            if (j < dt.Columns.Count - 1)
                            {
                                Json.Append(",");
                            }
                        }
                        Json.Append("}");
                        if (i < dt.Rows.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("]}");
                return Json.ToString();
            }
    DataTable转Json

    二、Dataset转Json

          public static string Dataset2Json(DataSet ds)
            {
                StringBuilder json = new StringBuilder();
    
                foreach (DataTable dt in ds.Tables)
                {
                    json.Append("{"");
                    json.Append(dt.TableName);
                    json.Append("":");
                    json.Append(DataTable2Json(dt));
                    json.Append("}");
                } return json.ToString();
            }
    主方法
          public static string DataTableToJson2(DataTable dt)
            {
                StringBuilder Json = new StringBuilder();
                Json.Append("{"" + dt.TableName + "":[");
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Json.Append("
    " + "{"device":" + "
    " + "{");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            string columName = dt.Columns[j].ColumnName.ToString();
                            string columValue = dt.Rows[i][j].ToString();
                            if (j == 9)//"radios":{"wifiMAC":~~},
                                Json.Append(""radios":{"" + columName + "":"" + columValue + ""}");
                            else if (j == 10 || j == 11)//"partDetails":{"mainLogicBoardSerialNumber":~~, "batterySerialNumber":~~ }      
                            {
                                if (j == 10)
                                    Json.Append(""partDetails":{"" + columName + "":"" + columValue + """);
                                else
                                    Json.Append(""" + columName + "":"" + columValue + ""}}");
                            }
                            else if (j == 12)
                                Json.Append(""order":{"" + columName + "":"" + columValue + """);
                            else if (j == 16)
                                Json.Append(""" + columName + "":"" + columValue + ""}");
                            else
                                Json.Append(""" + columName + "":"" + columValue + """);
    
                            if (j < dt.Columns.Count - 1 )
                                Json.Append(",");
                        }
                        Json.Append("}");
                        if (i < dt.Rows.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("
    " + "]}");
                return Json.ToString();
            }
    调用方法 

    技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
    我创建了一个.NET开发交流群,用于分享学习心得和讨论相关技术难题。欢迎有兴趣的小伙伴扫码入群,相互学习!

  • 相关阅读:
    sublime text 安装json插件
    通过坐标系求覆盖物面积
    关于大数据入门的相关闲聊
    渡月橋 ~君 想ふ~
    数据库快照
    oracle 11g安装与使用
    IaaS、PaaS、SaaS介绍(非原创)
    Android项目模块化/组件化开发(非原创)
    开发人员必备的网络知识(非原创)
    公司常见管理系统介绍(非原创)
  • 原文地址:https://www.cnblogs.com/wml-it/p/15079494.html
Copyright © 2020-2023  润新知