ashx将datatable返回json数据
1.直接使用JsonConvert.SerializeObject()。将datatable放入 输出字符串
下面是测试:用webform+ashx作为接口。
public class GetJson : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/json";
var str = DataTableToJsonWithJsonNet(GetDt());
context.Response.Write(str);
//context.Response.Write(GetDt());
}
#region 构造datatable
public static DataTable GetDt()
{
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("Age");
dt.Columns.Add("Birth");
dt.Rows.Add(1,"张三",22,"1993-12-4");
dt.Rows.Add(1, "李四", 23, "1992-12-4");
dt.Rows.Add(1, "王五", 21, "1996-12-4");
dt.Rows.Add(1, "赵六", 23, "1997-12-4");
dt.Rows.Add(1, "马七", 20, "1991-12-4");
return dt;
}
#endregion
#region 根据datatable返回json
public static string DataTableToJsonWithJsonNet(DataTable table)
{
string jsonString = string.Empty;
jsonString = JsonConvert.SerializeObject(table);
return jsonString;
}
#endregion
public bool IsReusable
{
get
{
return false;
}
}
}
经过测试输出到前台的最终是一个数组。
2.datatable拼接到对象中,再返回
同样情况下,假如我们不转换为json字符串,直接使用datatable输出到前台,经过测试前台什么都接收不到。
假如想把datatable作为一个数组拼接到一个对象中在返回前台,此时应该用JObject和Jarry。
public class GetJson : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/json";
var str = DataTableToJsonWithJsonNet(GetDt());
context.Response.Write(str);
}
#region 构造datatable
public static DataTable GetDt()
{
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("Age");
dt.Columns.Add("Birth");
dt.Rows.Add(1,"张三",22,"1993-12-4");
dt.Rows.Add(1, "李四", 23, "1992-12-4");
dt.Rows.Add(1, "王五", 21, "1996-12-4");
dt.Rows.Add(1, "赵六", 23, "1997-12-4");
dt.Rows.Add(1, "马七", 20, "1991-12-4");
return dt;
}
#endregion
#region 根据datatable返回json
public static JObject DataTableToJsonWithJsonNet(DataTable table)
{
JObject job;
JArray jar = JArray.FromObject(GetDt());
job = new JObject { {"code",0 },{ "msg","查询成功"},{ "state",true},{ "data",jar} };
return job;
}
#endregion
public bool IsReusable
{
get
{
return false;
}
}
}
可以看到前台接收到对象了
3.假如后台是一个list,返回方法一样,只需要将JArry.formobject();
传入的对象改为list就可以
ashx将datatable返回json数据的更多相关文章
- AJAX提交到Handler.ashx一般处理程序返回json数据 (字符串拼接方式)
<%@ WebHandler Language="C#" Class="Handler" %> using System; using System ...
- AJAX提交到Handler.ashx一般处理程序返回json数据-转
直接贴代码!我也测试通过! 一切看注释! 谢谢! <%@ WebHandler Language="C#" class="Handler" %> u ...
- ashx文件结合ajax使用(返回json数据)
ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...
- 用ajax获取后台数据,返回json数据,怎么在前台使用?
用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...
- Web API返回JSON数据
对Web API新手来说,不要忽略了ApiController 在web API中,方法的返回值如果是实体的话实际上是自动返回JSON数据的例如: 他的返回值就是这样的: { "Conten ...
- Spring MVC 4.1.4 RESTFUL风格返回JSON数据406错误处理
Spring MVC 4.1.4 RESTFUL风格返回JSON数据406错误处理 今天在使用spring4.1.4,使用ResponseBody注解返回JSON格式的数据的时候遇到406错误. 解决 ...
- 深入了解Struts2返回JSON数据的原理
首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...
- SpringMVC——返回JSON数据&&文件上传下载
--------------------------------------------返回JSON数据------------------------------------------------ ...
- 如何在Crystal Portlet中正确返回JSON数据给AJAX请求?
当Crystal Portlet中需要采用Ajax请求,并让后台返回Json数据时,如何才能正确.方便的返回Json数据呢? 以下两种方法均可: 方法一:Ajax请求时,采用RenderURL,对应P ...
随机推荐
- cobbler自动化安装centos
转载于:https://www.cnblogs.com/skymydaiji/p/10877533.html 一.cobbler介绍 1.前言 cobbler 是基于 python 语言开发的 pxe ...
- 零基础小白Python入门必看:面向对象之典型魔术方法
- 《New Horizon College English》 (Third Edition) -长篇阅读(Skmming and Scanning)
<New Horizon College English>(Third Edition) <新视野大学英语>(第三版) 长篇阅读(Skmming and Scanning) 总 ...
- PowerShell 语法
PowerShell 之 教程 PowerShell 中变量.函数命名等不区分大小写,但字符串区分大小写 powershell 脚本文件 扩展名为 .ps1 调用操作符 & + Cmd Cmd ...
- spring-security-结合JWT的简单demo
spring-security-demo 前言:本来是想尽量简单简单点的写一个demo的,但是spring-security实在是内容有点多,写着写着看起来就没那么简单了,想入门spring-secu ...
- spring boot:多模块项目生成jar包(spring boot 2.3.3)
一,多模块项目的优点: 1,为什么要使用多模块项目? 相比传统的单体工程,使用Maven的多模块配置, 有如下优点: 帮助项目划分模块,鼓励重用, 防止POM变得过于庞大, 方便某个模块的构建,而不用 ...
- 运行shell文件时提示/bin/bash^M: bad interpreter: 没有那个文件
查看脚本文件是dos格式还是unix格式的几种办法.(1)cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$:(2)od -t x1 file ...
- centos8安装java jdk 13
一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...
- centos8平台编译安装nginx1.18.0
一,nginx的官网: http://nginx.org/ 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码 ...
- phpstorm 使用xdebug
一.在phpstudy配置 开启xdebug的zend扩展,在php.ini 中添加下面的代码: [xdebug] zend_extension = "D:\phpstudy_pro\Ext ...