/// <summary>         /// DataTable转成Json

/// </summary>         /// <param name="jsonName"></param>

/// <param name="dt"></param>         /// <returns></returns>

public static string DataTableToJson(string jsonName, DataTable dt)

{             StringBuilder Json = new StringBuilder();

Json.Append("{\"" + jsonName + "\":");

if (dt.Rows.Count > 0)

{

Json.Append("[");

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

}

else

{

Json.Append("\"null\"");

}

Json.Append("}");

return Json.ToString();

}

/// <summary>

/// DataTable转成Json

/// </summary>

/// <param name="jsonName"></param>

/// <param name="dt"></param>

/// <returns></returns>

public static string DataTableToJson(string jsonName, string GroupName, string strDataName, DataTable dt)

{

StringBuilder Json = new StringBuilder();

Json.Append("{\"" + jsonName + "\":[");

if (dt.Rows.Count > 0)

{

DataTable dtGroupNames = dt.DefaultView.ToTable(true, GroupName);

for (int m = 0; m < dtGroupNames.Rows.Count; m++)

{

//分组                     string strCurrentGroupValue = (dtGroupNames.Rows[m][GroupName] ?? "").ToString();

Json.Append("{\"" + GroupName + "\":\"" + strCurrentGroupValue + "\",\"" + strDataName + "\":[");

DataRow[] drs = dt.Select(GroupName + "='" + strCurrentGroupValue + "'");

for (int i = 0; i < drs.Length; i++)

{

Json.Append("{");

for (int j = 0; j < dt.Columns.Count; j++)

{

if (GroupName != dt.Columns[j].ColumnName.ToString() && (drs[i][GroupName] ?? "").ToString() == strCurrentGroupValue)                             {

//不构造已存在的分组信息

Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + drs[i][j].ToString() + "\"");

if (j < dt.Columns.Count - 1)

{

Json.Append(",");

}

}

}

Json.Append("}");

if (i < drs.Length - 1)

{

Json.Append(",");

}

}

Json.Append("]}");

if (m < dtGroupNames.Rows.Count - 1)

{

Json.Append(",");

}

}

}

Json.Append("]}");

return Json.ToString();

}

DataTable转成Json的更多相关文章

  1. DataTable 转换成 Json的3种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...

  2. asp.net dataTable转换成Json格式

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

  3. 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)

    public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...

  4. ASP.NET 将DataTable解析成JSON简介

    这里解析json使用的是Newtonsoft.Json.dll程序集.下面请看code: using System; using System.Collections.Generic; using S ...

  5. Datatable转成Json方式两则

    1, Asp.net C# 使用Newtonsoft.Json 实现DataTable转Json格式数据 1.这里下载:http://www.newtonsoft.com/products/json/ ...

  6. C# DataTable 转换成JSON数据

    原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...

  7. dataTable转换成Json格式

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

  8. 将DataTable转换成Json格式

    方法一: 将DataTable数据拼接成json字符串,方法如下: ///<summary> /// dataTable转换成Json格式 ///</summary> ///& ...

  9. DataTable转换成json字符串

    将DataTable里面的行转换成json字符串方法: #region DataTable转为json /// <summary> /// DataTable转为json /// < ...

随机推荐

  1. 解决js计算 小数加减乘除失真的功能函数

    function floatPoint(one,two,str){ //转化为字符串 one = ''+one two = ''+two //切割成整数部分和小数部分 var oneStr = one ...

  2. 【codeforces 20B】Equation

    [题目链接]:http://codeforces.com/contest/20/problem/B [题意] 给你一个方程,让你输出这个方程的解的情况. [题解] a==0,b==0,c==0时,为恒 ...

  3. FZU 1980 AbOr's story

    AbOr's story Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on FZU. Original I ...

  4. [MST] Test mobx-state-tree Models by Recording Snapshots or Patches

    Testing models is straightforward. Especially because MST provides powerful tools to track exactly h ...

  5. nyoj914(二分搜索+贪心)

    题目意思: pid=914">acm.nyist.net/JudgeOnline/problem.php?pid=914 如今有n个物品的重量和价值各自是Wi和Vi,你能帮他从中选出k ...

  6. java 短连接+MD5加密短链接

    java 短连接+MD5加密短链接 import java.security.MessageDigest; public class ShotUrlUtil { public static void ...

  7. nj07---npm

    一.如何使用包管理器 Node.js包管理器,即npm是Node.js官方提供的包管理工具,它已经成了Node.js包的标准发布平台,用于Node.js包的发布.传播.依赖控制.(可以下载上面的包也可 ...

  8. sass07 函数

    scsss @function double($width){ //自定义函数u @return $width * 2; } @function double($width){ //自定义函数u @i ...

  9. spark 类标签的稀疏 特征向量

    一个向量(1.0,0.0,3.0)它有2中表示的方法 密集:[1.0,0.0,3.0]    其和一般的数组无异 稀疏:(3,[0,2],[1.0,3.0])     其表示的含义(向量大小,序号,值 ...

  10. CUDA还未产出,又要出北洋多元统计习题集

    其实目前是自己摸清了一个套路.genome realign的算法,以及CUDA的写法都已经有数了,前两天也弄完了关静的所有任务.但是今天关静早上一上来就宣布一个重磅消息:除了全学期的作业和期末论文,另 ...