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

比如说:

/// <summary>
/// DataTable 转换为Json
/// </summary>
/// <param name="dt">datatable</param>
/// <returns></returns>
public string DataTableToJson(DataTable dt)
{
//如果原数据为空,则直接返回空结构
if (dt == null || dt.Rows.Count<=) return "{}"; string columnFirst = "";
List<string> result = new List<string>();
StringBuilder Json = new StringBuilder();
if (dt.Rows.Count > )
{
for (int i = ; i < dt.Rows.Count; i++)
{
if (columnFirst != dt.Rows[i][].ToString())
{
if (i != )
{
AddNewJson(Json, result, dt);
}
columnFirst = dt.Rows[i][].ToString();
result = new List<string>();
for (int k = ; k < dt.Columns.Count; k++)
{
result.Add("\"" + dt.Rows[i][k].ToString() + "\"");
}
}
else
{
for (int k = ; k < dt.Columns.Count; k++)
{
if (!result[k].Contains(dt.Rows[i][k].ToString()))
{
result[k] += ",\"" + dt.Rows[i][k].ToString() + "\"";
}
}
}
if (i == dt.Rows.Count - )
{
AddNewJson(Json, result, dt);
}
}
}
return Json.ToString();
} /// <summary>
/// 添加新的Json
/// </summary>
/// <param name="Json"></param>
/// <param name="result"></param>
/// <param name="dt"></param>
private void AddNewJson(StringBuilder Json, List<string> result, DataTable dt)
{
Json.Append("{");
for (int i = ; i < dt.Columns.Count; i++)
{
Json.Append("\"");
Json.Append(dt.Columns[i].ColumnName);
Json.Append("\":");
if (result[i].Contains(","))
{
Json.Append("[");
Json.Append(result[i]);
if (i == dt.Columns.Count - )
{
Json.Append("]");
}
else
{
Json.Append("],");
}
}
else
{
Json.Append(result[i]);
if (i != dt.Columns.Count - )
{
Json.Append(",");
}
}
}
Json.Append("}");
}

.NET DataTable转换为JSON格式的字符串的更多相关文章

  1. DataTable转换为Json格式

    private string DataTableToJson(DataTable dt) { string Json = ""; Json = Json + "[&quo ...

  2. Asp.net 将DataTable 或者DataSet 转换为Json 格式

    Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// < ...

  3. JSon_零基础_006_将JSon格式的字符串转换为Java对象

    需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key ...

  4. JSon_零基础_005_将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面

    将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写:po(bean)代码: package com.west.webcourse.po; /** * 第 ...

  5. JSon_零基础_005_将po(bean)对象转换为JSon格式的对象字符串,返回给界面

    将po(bean)对象转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写po(bean)类: package com.west.webcourse.po; /** * 第01步:编写be ...

  6. JSon_零基础_004_将Set集合对象转换为JSon格式的对象字符串,返回给界面

    将Set集合对象转换为JSon格式的对象字符串,返回给界面 需要导入的jar包: 编写:servlet: package com.west.webcourse.servlet; import java ...

  7. JSon_零基础_003_将Map集合对象转换为JSon格式的对象字符串,返回给界面

    将Map集合对象转换为JSon格式的对象字符串,返回给界面 需导入的jar包: 编写servlet: package com.west.webcourse.servlet; import java.i ...

  8. JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面

    将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...

  9. JSon_零基础_001_将布尔类型数组转换为JSon格式字符串,返回给界面

    将布尔类型数组转换为JSon格式字符串,返回给界面 需要导入包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com ...

随机推荐

  1. Shell脚本实现在Linux系统中自动安装JDK

    A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: 复制代码 代码如下: $ ...

  2. 【33.33%】【codeforces 608C】Chain Reaction

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  3. Unity UGUI——Rect Transform包裹(Anchor Presets)

    Anchor Presets使用演示样品物业 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTXJfQUhhbw==/font/5a6L5L2T/fonts ...

  4. 华为云软件开发云VS开发痛点=?

    在软件开发的过程中,是不是总会遇到这些问题: 搭建一个开发环境,用了九牛二虎之力,悲催的是竟然用不了…… 团队同事突然出差,他写的代码出现问题,我却不会改…… 提升软件件质量靠代码,交叉看.找大拿,简 ...

  5. 【28.57%】【codeforces 615C】 Running Track

    time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard ou ...

  6. vue 一些webpack的配置详解

    最近一直在忙着做项目 本来想养成一个经常跟新博客的习惯 , 但是实在是太难了 , 每天加班到10点多 .8点能下班都是最好的了 , 小公司真不好待呀 分享一下最近半年的vue心得吧 我的项目是在他的基 ...

  7. Facebook学长交流分享

    印象中这似乎是 Facebook 第一次来浙大校园做交流. 前不久,也参加了 Google 的校园宣讲,G 的两大宣讲主题是 Google 介绍和模拟面试.印象最深的是无敌的一家三口每年 100w 封 ...

  8. PAT 1041-1050 题解

    浏览全部代码:请戳 本文谨代表个人思路,欢迎讨论;) 1041. Be Unique (20) 题意 给出 N (<=105)个数(数值范围为 [1, 104]),找到其中不重复的第一个数字.比 ...

  9. 深度神经网络(DNN)

    深度神经网络(DNN) 深度神经网络(Deep Neural Networks, 以下简称DNN)是深度学习的基础,而要理解DNN,首先我们要理解DNN模型,下面我们就对DNN的模型与前向传播算法做一 ...

  10. 使用Toast进行用户提醒(转)

    Toast是Android提供的一个轻量级的用户提醒控件,使用也很简单,就相当一个极简的dialog!!!下面将向您介绍一些Toast的详细用法: 1.普遍使用的方法: Context context ...