.NET DataTable转换为JSON格式的字符串
在进行数据传递的时候,有时我们需要通过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格式的字符串的更多相关文章
- DataTable转换为Json格式
private string DataTableToJson(DataTable dt) { string Json = ""; Json = Json + "[&quo ...
- Asp.net 将DataTable 或者DataSet 转换为Json 格式
Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// < ...
- JSon_零基础_006_将JSon格式的字符串转换为Java对象
需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key ...
- JSon_零基础_005_将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面
将po(bean)对象集合List转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写:po(bean)代码: package com.west.webcourse.po; /** * 第 ...
- JSon_零基础_005_将po(bean)对象转换为JSon格式的对象字符串,返回给界面
将po(bean)对象转换为JSon格式的对象字符串,返回给界面 导入jar包: 编写po(bean)类: package com.west.webcourse.po; /** * 第01步:编写be ...
- JSon_零基础_004_将Set集合对象转换为JSon格式的对象字符串,返回给界面
将Set集合对象转换为JSon格式的对象字符串,返回给界面 需要导入的jar包: 编写:servlet: package com.west.webcourse.servlet; import java ...
- JSon_零基础_003_将Map集合对象转换为JSon格式的对象字符串,返回给界面
将Map集合对象转换为JSon格式的对象字符串,返回给界面 需导入的jar包: 编写servlet: package com.west.webcourse.servlet; import java.i ...
- JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面
将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...
- JSon_零基础_001_将布尔类型数组转换为JSon格式字符串,返回给界面
将布尔类型数组转换为JSon格式字符串,返回给界面 需要导入包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com ...
随机推荐
- Android网络应用之Socket(一)
socket编程是网络通信的一个基础应用.不管是手机端还是PC端都须要socket技术来建立网络通信. 在本章小编主要从下面几个方面来介绍socket的相关知识: 各自是"什么是socket ...
- NotifyICon使用
2010-04-11 15:47 by Ju2ender, 1438 visits, 网摘, 收藏, 编辑 最常见使用NotifyIcon的程序就是QQ了,当初我非常好奇这通知区域的小企鹅是怎样随着Q ...
- boost::any在降低模块之间耦合性的应用
作者:朱金灿 来源:http://blog.csdn.net/clever101 在开发大型系统中,遵循这样一个原则:模块之间低耦合,模块内高内聚.比如系统中模块有界面模块和算法模块两种,一般是界面模 ...
- Hexo里如何添加广告
前期先用Hexo做个人网站,模板可以用https://github.com/828768/maupassant-hexo,关于如何加入广告,可以看一下https://sobaigu.com/hexo- ...
- MinGW安装和使用(不是mingw-w32)
MinGW全称Minimalist GNU For Windows,是个精简的Windows平台C/C++.ADA及Fortran编译器,相比Cygwin而言,体积要小很多,使用较为方便.MinGW提 ...
- webpack单独构建scss文件与.vue组件里构建scss的一个坑
在入口main.js里构建scss是通过引入模块的方式 import './assets/_reset.scss'; import './assets/_flex.scss'; import './a ...
- Java 开源博客——B3log Solo 0.6.5 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...
- 数据访问层之Repository
数据访问层之Repository 接上文 项目架构开发:数据访问层之Logger 本章我们继续IRepository开发,这个仓储与领域模式里边的仓储有区别,更像一个工具类,也就是有些园友说的“伪 ...
- virtualbox下ubuntu共享文件夹自动挂载
1.若想删除挂载,可执行命令 umount -f /mnt/share 2.若想开机自动挂载,可以在 /etc/fstab 文件末添加一项 sharing /mnt/share vboxsf ...
- ZOJ 2334 HDU 1512 Monkey King
题意: 猴子们打架 认识的猴子不会打架 两仅仅猴子打完以后就认识了 A认识B B认识C A也认识C 每次打架由两伙猴子进行 分别选出自己的最高战斗力 在战斗之后两仅仅猴子战斗力减半 给出 ...