温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#中怎么把DataTable、Dataset转Json数据

发布时间:2022-04-24 10:50:24 来源:亿速云 阅读:295 作者:iii 栏目:开发技术

今天小编给大家分享一下C#中怎么把DataTable、Dataset转Json数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

什么是JSON

JSON是JavaScript Object Notation的简称,中文含义为“JavaScript 对象表示法”,它是一种数据交换的文本格式,而不是一种编程语言。

JSON 是一种轻量级的数据交换格式,它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON的特点

JSON 主要具有以下特性,这些特性使它成为理想的数据交换语言:

  • JSON 是轻量级的文本数据交换格式

  • JSON 具有自我描述性,更易理解

  • JSON 采用完全独立于语言的文本格式:JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前常见的动态编程语言(PHP,JSP,.NET)都支持JSON。

  • JSON 是存储和交换文本信息的一种语法,它与XML具有相同的特性,是一种数据存储格式,却比 XML 更小、更快、 更易于人编写和阅读、更易于生成和解析。

类似于 XML 的特性:

  • JSON 是纯文本

  • JSON 具有“自我描述性”(人类可读)

  • JSON 具有层级结构(值中存在值)

  • JSON 可通过 JavaScript 进行解析

  • JSON 数据可使用 AJAX 进行传输

相比 XML 的不同之处:

  • 没有结束标签

  • 更短

  • 读写的速度更快

  • 能够使用内建的 JavaScript eval() 方法进行解析

  • 使用数组

  • 不使用保留字

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();
        }

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("\r\n" + "{\"device\":" + "\r\n" + "{");
                    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("\r\n" + "]}");
            return Json.ToString();
        }

以上就是“C#中怎么把DataTable、Dataset转Json数据”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI