在进行数据传递的时候,有时我们需要通过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. simple java mail

    <dependency> <groupId>org.simplejavamail</groupId> <artifactId>simple-java-m ...

  2. form的get与post方式的区别(转)

    form元素的method属性用来指定发送form的http方法 使用get时,form数据集被附加到form元素的action属性所指定的URL后面,仅仅是拼接一个URL,然后直接向服务区请求数据, ...

  3. 【t003】string

    Time Limit: 1 second Memory Limit: 50 MB [问题描述] 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为" ...

  4. scala 通过apply创建类的对象

    package cn.scala_base.oop.scalaobject; class Boy(name: String) { private var age: Int = 0; println(n ...

  5. 【38.24%】【codeforces 621E】 Wet Shark and Blocks

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

  6. SAAS是否能实现人在家工作的梦想?

    在过去的十年,在人们的工作环境的巨大变化已经发生,越来越多的人选择在家工作. 高租金的办公室,络,快速宽带的广泛应用.这些因素都使得远程办公成为了人们工作中密不可分的一种方式.使用普通手机和办公操作系 ...

  7. @RequestBody标记的形参,与APP接口不能直接用

    用ajax请求传JSON串,在服务端形参用@RequestBody标记可以直接转为对应的对象: 在APP调用该接口时,服务端用@RequestBody标记无法转为对应对象,将形参改为String类型, ...

  8. wpf Content数据绑定StringFormat起作用的原理和解决

    原文:wpf Content数据绑定StringFormat起作用的原理和解决 <Window x:Class="WpfOne.Bind.Bind6" xmlns=" ...

  9. windows Hook 消息分类

    调用SetWindowsHookEx的DLL的模块实例句柄,它可以经由DllMain入口的第一个参数得到.HHOOK SetWindowsHookEx( int idHook,HOOKPROC lpf ...

  10. ASP .NET DropDownList多级联动事件

    思路 假如有三级省.市.区,先加载出所有省选择省之后,加载出该省所有市选择市之后,加载出该市所有区重新选择省,则清空市和区重新选择市,则清空区想好数据结构,不同的数据结构做法不同 例子 数据结构 pu ...