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就可以

原文地址:https://www.cnblogs.com/yagamilight/p/11990794.html

时间: 2024-10-08 16:42:07

ashx将datatable返回json数据的相关文章

ashx文件结合ajax使用(返回json数据)

ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string userName = string.Empty; string msg = "{{\"code\":\"{0}\",\"msg\":\"{1}\"}}";

用ajax获取后台数据,返回json数据,怎么在前台使用?

用ajax获取后台数据,返回json数据,怎么在前台使用呢? 后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == "SearchCustomer")                 {                     int ID;                     if (Int32.TryParse(CustomerID, out ID))                     {    

2.Webservice返回json数据并去掉Xml头部。

问题: 我将结果内容用字符串拼接成Json数据并返回的时候,会在结果前面添加xml头部,结果如下. <span style="font-size:14px;"><string xmlns="http://tempuri.org/"> {"data":[{"batchId":"B001","produceOrderId":"", "pr

jquery实现ajax,返回json数据

jquery实现ajax可以调用几种方法 我经常用的是$get(url,data,callback,type)方法 其中url是异步请求的页面(可以是.ashx文件),data是参数,callback是回调函数,而type是返回数据的类型.type有xml,html,json,text等. 首先,页面引用jquery.js 在页面写ajax处理的js函数 1 2 3 4 5 6 7 8 9 10 11 12 13 function initMeeting() {             $.ge

【Struts2】SSH如何返回JSON数据

  在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就是平常的配置 第一种方法是使用com.google.gson.Gson 将对象转化为Json字符串  (gson-1.6.jar) 主要的代码如下 1 package com.javen.tool; 2 3 import java.io.IOException; 4 import java.io.P

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

struts返回json数据

想要在struts中返回json格式数据有两种办法. 1.使用servlet的输出流 实际上就是在struts中获取response对象的输出流.然后写入你要返回的json数据,本质和用servlet返回json数据是一样的,需要自己导入json的jar包.不做详细介绍. 2.试用struts对json的扩展 这里需要两个jar包,xwork-core-2.1.6.jar和struts2-json-plugin-2.1.8.jar.如果是用MyEclipse注入的struts环境就不需要手动了.

idea+springmvc+spring+mybatis+maven整合返回json数据webapi

首先看一张目录结构图: : 创建步骤: 1.创建maven  webapp工程, 创建完后的目录结构为: 2.添加项目依赖(添加jar包) 需要的jar包: spring-webmvc, spring-test, spring-orm, commons-dbcp, mybatis, mybatis-spring, mysql-connector-java, commons-fileupload, jstl,jackson-core, jackson-databind, jackson-mappe

PHP-------ajax返回值 返回JSON 数据

ajax返回值  返回JSON  数据 ajax返回值 有text   JSON ajax返回值  返回JSON  数据 1 <title>无标题文档</title> 2 <script src="../jquery-1.11.2.min.js"> 3 </script> 4 5 <!--ajax返回值 有text JSON--> 6 <!--ajax返回值 返回JSON 数据--> 7 8 9 10 11 <