随着AJAX,MVC等WEB框架的使用,JavaScript又更多的回到了我们身边。
在JS中我们需要对对象进行JSON序列化通常使用JSON.net, 不过它对DataTable的序列化不能很好的满足的我们的需求,后来在CodeProject发现一个兄弟已经写好了 Convert ASP.NET DataTable to JSON, to use datatable in JAVASCRIPT ,记一下,免得忘记了。

 1public string CreateJsonParameters(DataTable dt)
 2        {
 3            /**//* /****************************************************************************
 4             * Without goingin to the depth of the functioning of this Method, i will try to give an overview
 5             * As soon as this method gets a DataTable it starts to convert it into JSON String,
 6             * it takes each row and in each row it grabs the cell name and its data.
 7             * This kind of JSON is very usefull when developer have to have Column name of the .
 8             * Values Can be Access on clien in this way. OBJ.HEAD[0].<ColumnName>
 9             * NOTE: One negative point. by this method user will not be able to call any cell by its index.
10             * *************************************************************************/
11            StringBuilder JsonString = new StringBuilder();
12            //Exception Handling        
13            if (dt != null && dt.Rows.Count > 0)
14            {
15                JsonString.Append("{ ");
16                JsonString.Append("\"Head\":[ ");
17                for (int i = 0; i < dt.Rows.Count; i++)
18                {
19                    JsonString.Append("{ ");
20                    for (int j = 0; j < dt.Columns.Count; j++)
21                    {
22                        if (j < dt.Columns.Count - 1)
23                        {
24                            JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
25                        }
26                        else if (j == dt.Columns.Count - 1)
27                        {
28                            JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
29                        }
30                    }
31                    /**//*end Of String*/
32                    if (i == dt.Rows.Count - 1)
33                    {
34                        JsonString.Append("} ");
35                    }
36                    else
37                    {
38                        JsonString.Append("}, ");
39                    }
40                }
41                JsonString.Append("]}");
42                return JsonString.ToString();
43            }
44            else
45            {
46                return null;
47            }
48        }

转载于:https://www.cnblogs.com/xingzhixp/archive/2007/11/24/971422.html

DataTable 的 JSON 序列化相关推荐

  1. C# 利用Newtonsoft.Json将DataTable进行JSON序列化

    1 string JsonString = string.Empty; 2 JsonString = JsonConvert.SerializeObject(vds);//json序列化 3 stri ...

  2. 二:C#对象、集合、DataTable与Json内容互转示例;

    导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型:    二:C#对象.集合.DataTable与Json内容互转示例: ...

  3. C#里XML(JSON)序列化时,自动隐藏值为Null的成员的输出

    原文:C#里XML(JSON)序列化时,自动隐藏值为Null的成员的输出 从StackOverflow里找到的答案.发现对最新的Newtownsoft的JSON序列化也同样适用. https://st ...

  4. .NET 自定义Json序列化时间格式

    .NET 自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认序列化规 ...

  5. C# Json 序列化与反序列化二

    /// <summary>/// 将对象转换为 JSON 字符串/// </summary>/// <typeparam name="T">&l ...

  6. DotNet的JSON序列化与反序列化

    JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...

  7. 解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json

    1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2: ...

  8. xml 和 json 序列化忽略字段

    xml 和 json 序列化忽略字段: @JsonIgnore@XmlTransient 转载于:https://www.cnblogs.com/xiluhua/p/9192577.html

  9. 解决Python自带的json序列化工具不能序列化datetime类型数据问题

    解决Python自带的json序列化工具不能序列化datetime类型数据问题 参考文章: (1)解决Python自带的json序列化工具不能序列化datetime类型数据问题 (2)https:// ...

最新文章

  1. JAVA编程语言的基础知识(六)
  2. php对字符串进行编码,PHP如何使用convert_uuencode()函数对字符串进行编码?
  3. QT学习笔记(十三):绘制图像
  4. win10 安装visual studio 2015遇到的坑
  5. android中所有颜色大全
  6. AMOS分析技术:路径分析的非递归模型
  7. 宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统
  8. 反垃圾邮件黑名单申诉工作相关步骤说明
  9. 思维导图带你了解22个职场学习网站!亲测好用
  10. 【sklearn】K-Means聚类与PCA降维实践 - 用户信用分群和分析
  11. 新买的硬盘接在计算机上,电脑如何对刚买来的新硬盘分区
  12. FPGA series # 基于SDx的fft函数加速
  13. 微信对账单接口返回值解析
  14. steam饥荒云服务器搭建
  15. pycharm下django案例的环境搭建运行
  16. 【CMake 语法】(6) CMake 条件、循环、跳出循环
  17. ygo游戏王卡组_游戏王最多种类的卡组,竟然高达六种形态
  18. 台灯显色指数多少比较好?2022双十一显色90以上的台灯推荐
  19. 【3d地图】vue3.0中使用echarts geo3D
  20. MySQL 分类排名(并列、不并列),分组TOP N,ROW_NUMBER()函数

热门文章

  1. UML建模系列文章总结 (转载)
  2. MXNET:深度学习计算-GPU
  3. 从一个路口转向另一个路口需要多少步
  4. 杨森翔的书法:正月十六试笔【圆光、斗方】
  5. WinXP SSH连接不上虚拟机的解决方法
  6. liunx 在虚拟机(VMware)下挂载光驱命令
  7. java中文乱码的解决
  8. python 回溯法 01背包问题_Python回溯法解决01背包问题
  9. C语言经典例68-数组元素循环偏移
  10. 【错误记录】VMware 虚拟机报错 ( Ubuntu-Unattended upgrade in progress during shutdown, please don‘t turn off )