当前位置:  编程技术>.net/c#/asp.net

c#扩展datatable转json示例

    来源: 互联网  发布时间:2014-10-30

    本文导语:  代码如下:namespace PadWebServices.Model{   public static class DataTableExtender    {       public static string ToJson(this DataTable dt,string tbName)  // this DataTable 标识对DataTable类的扩展            {                StringBuilder JsonString...

代码如下:

namespace PadWebServices.Model
{
   public static class DataTableExtender
    {
       public static string ToJson(this DataTable dt,string tbName)  // this DataTable 标识对DataTable类的扩展
            {
                StringBuilder JsonString = new StringBuilder();
                if (dt != null && dt.Rows.Count > 0)
                {
                    JsonString.Append("{ ");
                    JsonString.Append("""+tbName+"":[ ");
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        JsonString.Append("{ ");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            if (j < dt.Columns.Count - 1)
                            {
                                JsonString.Append(""" + dt.Columns[j].ColumnName.ToString() + "":" + """ + dt.Rows[i][j].ToString() + "",");
                            }
                            else if (j == dt.Columns.Count - 1)
                            {
                                JsonString.Append(""" + dt.Columns[j].ColumnName.ToString() + "":" + """ + dt.Rows[i][j].ToString() + """);
                            }
                        }

                        /*end Of String*/
                        if (i == dt.Rows.Count - 1)
                        {
                            JsonString.Append("} ");
                        }
                        else
                        {
                            JsonString.Append("}, ");
                        }
                    }
                    JsonString.Append("]}");
                    return JsonString.ToString();
                }
                else
                {
                    return null;
                }

            }

    }
}

在用到的时候,using扩展类所在的空间,就可以用了。

代码如下:

[WebMethod]
public string GetSwt_yBatch()
{   
    DataTable dt = new BllSwt_yBatch().GetSwt_yBatch();
    return dt.ToJson("swt_yBatch");
}

这里的webservice返回的格式还是XML,只不过通过转成JSON的数据,在XML中是这样:

代码如下:


  { "swt_yBatch":[ { "sDoc_c":"test1","sDocAdd_c":"test2","nBatch":"1"},
{ "sDoc_c":"test3","sDocAdd_c":"test4","nBatch":"2"}, { "sDoc_c":"test3","sDocAdd_c":"test4","nBatch":"2"} ]}

没有转成JSON的数据是这样:

代码如下:


-
-
-
-
-
-
-
-
 
 
 
 
 
 
 
 
 
 
-
-
-
  test1
  test2
  1
 
-
  test3
  test4
  2
 
-
  test3
  test4
  2
 
 
 
 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php安装完成后如何添加mysql扩展
  • 对chrome os的panelize扩展的一点困惑。。(就是那个能打开多个窗口的扩展)
  • CentOS下PHP安装完成后继续安装GD扩展库
  • android 获取文件的扩展名和去掉文件扩展名的小例子
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 请教:什么叫扩展字符集,什么又是不扩展阿?
  • 扩展jQuery对象时如何扩展成员变量具体怎么实现
  • 安装Red lnuix9.0的问题,两块硬盘,一块分成一个dos分区,三个dos扩展分区,安装win2000,另一块40G硬盘分成一个dos分区,两个dos扩展分
  • Linux下的文件类型有几种?扩展名分别是什么?可执行文件有扩展名吗,若有的话是什么?
  • 文件的扩展属性问题
  • 扩展逻辑卷,在线急急急。。。
  • PHP 扩展模块 PECL
  • 安装linux时,能否将linux swap分区划在扩展分区中?
  • Symbian图像处理扩展库 NokiaCV
  • 请问用VI命令建立的文件扩展名是什么?
  • PHP的开源扩展 WinBinder
  • jQuery Mobile 图表扩展 JQMCharts
  • 代码覆盖率统计工具gcov的扩展 lcov
  • OpenCV的扩展库 ImageNets
  • 中文分词PHP扩展 MFSOU
  • jquery easyui表单重置扩展思路


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3