public string GetJsonFromDataTable(DataTable dt, int total, bool ShowFooter, string fields, string inputfiled, string ShowMessage = "合计:", string filter = "")
{
StringBuilder stringBuilder = new StringBuilder();
if (dt.Rows.Count == 0)
{
stringBuilder.Append("{ ");
stringBuilder.Append("\"rows\":[ ");
stringBuilder.Append("]");
stringBuilder.Append(",");
stringBuilder.Append("\"total\":");
stringBuilder.Append(total);
stringBuilder.Append(",\"footer\":[");
stringBuilder.Append("]");
stringBuilder.Append("}");
return stringBuilder.ToString();
}
stringBuilder.Append("{ ");
stringBuilder.Append("\"rows\":[ ");
for (int i = 0; i < dt.Rows.Count; i++)
{
stringBuilder.Append("{ ");
for (int j = 0; j < dt.Columns.Count; j++)
{
if (j < dt.Columns.Count - 1)
{
stringBuilder.Append(string.Concat(new string[]
{
"\"",
dt.Columns[j].ColumnName.ToString().ToLower(),
"\":\"",
this.JsonCharFilter(dt.Rows[i][j].ToString()),
"\","
}));
}
else
{
if (j == dt.Columns.Count - 1)
{
stringBuilder.Append(string.Concat(new string[]
{
"\"",
dt.Columns[j].ColumnName.ToString().ToLower(),
"\":\"",
this.JsonCharFilter(dt.Rows[i][j].ToString()),
"\""
}));
}
}
}
if (i == dt.Rows.Count - 1)
{
stringBuilder.Append("} ");
}
else
{
stringBuilder.Append("}, ");
}
}
stringBuilder.Append("]");
stringBuilder.Append(",");
stringBuilder.Append("\"total\":");
stringBuilder.Append(total);
if (ShowFooter && fields.Length > 0 && inputfiled.Length > 0)
{
stringBuilder.Append(",\"footer\":[{");
stringBuilder.Append(string.Concat(new string[]
{
"\"",
inputfiled,
"\":\"<span style='color:red; font-weight:bold'>",
ShowMessage,
"</span>\","
}));
string[] array = fields.Split(new char[]
{
','
});
for (int k = 0; k < array.Length; k++)
{
if (k < array.Length - 1)
{
stringBuilder.Append(string.Concat(new object[]
{
"\"",
array[k],
"\":\"",
dt.Compute("sum(" + array[k] + ")", filter),
"\","
}));
}
else
{
stringBuilder.Append(string.Concat(new object[]
{
"\"",
array[k],
"\":\"",
dt.Compute("sum(" + array[k] + ")", filter),
"\""
}));
}
}
stringBuilder.Append("}]");
}
stringBuilder.Append("}");
return stringBuilder.ToString();
}

  

Datatable 生成json格式的更多相关文章

  1. Java Servlet生成JSON格式数据并用jQuery显示

    1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException;import java.io.PrintWriter;import java.uti ...

  2. 使用JSONObject类来生成json格式的数据

    JSONObject类不支持javabean转json 生成json格式数据的方式有: 1.使用JSONObject原生的来生成 2.使用map构建json格式的数据 3.使用javabean来构建j ...

  3. 如何使用fastJson来解析JSON格式数据和生成JSON格式数据

    由于项目用到了JSON格式的数据,在网上搜索到了阿里的fastjson比较好用,特此记录fastjson用法,以备以后查询之用. decode: 首先创建一个JSON解析类: public class ...

  4. python 生成json格式文件,并存储到手机上

    上代码 #!/usr/bin/env python # -*- encoding: utf-8 -*- import json import os import random "" ...

  5. .NET DataTable转换为JSON格式的字符串

    在进行数据传递的时候,有时我们需要通过Ajax的方式或者其他的方式传递一个数据列表,可以将DataTable或者其他形式的数据列表转换为JSON的格式,通过Ajax实体的形式进行传递. 比如说: // ...

  6. Asp.net C# 使用Newtonsoft.Json 实现DataTable转Json格式数据

    1.这里下载:http://www.newtonsoft.com/products/json/ 安装:    1.解压下载文件,得到Newtonsoft.Json.dll    2.在项目中添加引用  ...

  7. DataTable 转Json格式C#代码

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...

  8. 生成json格式

    html页面 <input type="button" value="重新生成JSON" class="button1" id=&qu ...

  9. 关于dataTable 生成JSON 树

    背景: POSTGRESL + C#  + DHTMLX SUIT 一个表生成一个JSON串,这个不是很麻烦: 1.在数据库(postges)中:  json_agg(row_to_json(t)) ...

随机推荐

  1. 从零开始利用vue-cli搭建简单音乐网站(五)

    上一篇文章讲到的是如何利用mongoose从数据库读取数据然后更新页面,接下来要实现的就是用户注册登录功能,这个功能涉及到的东西太多了,今天只实现了登录功能,登陆之后更新导航条界面,最后效果如下: 登 ...

  2. sizeof()用法汇总 zhuan

    sizeof()功能:计算数据空间的字节数1.与strlen()比较      strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素.       ...

  3. 线程池 Threadlocal 使用注意

    线程池中的线程是重复使用的,即一次使用完后,会被重新放回线程池,可被重新分配使用. 因此,ThreadLocal线程变量,如果保存的信息只是针对一次请求的,放回线程池之前需要清空这些Threadloc ...

  4. 分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型

    这张图每位程序员应该都深有感触. 人民心目中的程序员是这样的:坐在电脑面前噼里啪啦敲着键盘,运键如飞. 现实中程序员是这样的:编码5分钟,调试两小时. 今天我要给大家分享一个用WebGL开发的网站,感 ...

  5. PWN题搭建

    0x00.准备题目 例如:level.c #include <stdio.h> #include <unistd.h> int main(){ char buffer[0x10 ...

  6. Greenplum介绍-table

    GP中的table和其它关系型数据表是一样的,除了数据被分布在不同的segment以外. 建表时需定义以下几个方面:1. 指定列和数据类型2. 约束3. 分布策略4. 数据存储方式5. 大表分区策略 ...

  7. JS原型链(一)

    一.创建对象 // 第一种方式:字面量 var o1 = {name: 'o1'}; var o2 = new Object({name: 'o2'}); // 第二种方式:构造函数 var M = ...

  8. PAT 乙级 1009

    题目 题目地址:PAT 乙级 1009 题解 本题本身属于比较简单的字符串操作题,但是因为对于string的操作和函数不熟悉导致本题做起来很费劲,需要加强对于string类以及相关方法的理解和熟练程度 ...

  9. Elementary OS上eclipse卡死问题

    解决: 1.可以用  sudo ./eclipse -vm /home/username/jdk_path/bin/java 启动但是启动后仍有显示问题. 2. 修改 eclipse.ini 在 -- ...

  10. Maven项目:@Override is not allowed when implement interface method

    今天新建一个maven项目实现接口方法的时候报错编译不通过@Override is not allowed when implement interface method,要配置pom文件的compi ...