C# 实现后台生成 JSON 数据
5星 · 超过95%的资源 需积分: 40 122 浏览量
更新于2024-09-15
1
收藏 2KB TXT 举报
该资源主要讲述的是如何在C#中后端返回JSON类型的数据,通过处理HTTP请求并根据查询参数动态构建SQL查询,将查询结果转换为JSON格式并返回给前端。
在C#中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据交互。要实现后台返回JSON数据,我们可以利用.NET Framework中的`System.Web.Script.Serialization`命名空间中的`JavaScriptSerializer`类。以下是一个具体的示例,详细说明了如何操作:
1. 引用必要的命名空间:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Text;
using System.Web.Script.Serialization;
```
这里包含了处理HTTP请求、数据操作以及序列化JSON所需的所有类库。
2. 定义一个处理HTTP请求的类,如`GetRoportList`,并实现`IHttpHandler`接口:
```csharp
public class GetRoportList : IHttpHandler
```
这个类将处理来自前端的HTTP请求,并返回JSON响应。
3. 在处理请求的方法`ProcessRequest`中,获取请求参数并进行相应的操作:
```csharp
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json"; // 设置响应的Content-Type为application/json
if (!string.IsNullOrEmpty(context.Request.QueryString["UnitType"]))
{
string type = context.Request.QueryString["UnitType"].ToString().Trim();
// ...
}
}
```
这里检查了请求中是否存在"UnitType"参数,并将其值存储在`type`变量中。
4. 使用DAL(数据访问层)执行SQL查询,获取数据:
```csharp
DataTable dt = dal_info.GetList("typelike'%"+type+"%'").Tables[0];
```
这里假设`dal_info`是一个数据访问对象,能够执行SQL查询并返回结果集。
5. 将DataTable转换为JSON格式的字典列表:
```csharp
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
Dictionary<string, object> result = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
result.Add(col.ColumnName, dr[col]);
}
list.Add(result);
}
}
```
遍历DataTable的每一行和每一列,将数据转化为字典结构,然后添加到字典列表`list`中。
6. 序列化字典列表为JSON字符串并返回给前端:
```csharp
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsonResult = serializer.Serialize(list);
context.Response.Write(jsonResult);
```
创建一个`JavaScriptSerializer`实例,调用其`Serialize`方法将数据转换为JSON格式,最后将JSON字符串写入HTTP响应。
总结来说,这个C#代码示例展示了如何接收前端请求,执行SQL查询,将查询结果转换成JSON格式,并返回给前端的过程。这个过程包括了HTTP请求的处理、数据库操作以及JSON序列化等关键步骤,是典型的前后端数据交互的实现方式。
2014-07-12 上传
2019-01-18 上传
2020-10-24 上传
2013-01-31 上传
2009-02-20 上传
2024-11-07 上传
2013-11-08 上传
2013-11-07 上传
灰锅
- 粉丝: 0
- 资源: 2
最新资源
- cs1660HW2
- 串口调试助手和驱动程序.zip
- glass_portfolio
- dotnet C# 获取一个可用的端口的方法.rar
- pyg_lib-0.2.0+pt20cpu-cp39-cp39-linux_x86_64whl.zip
- Net4.5.2.zip
- robotjs.rar
- node_mongo_postman
- p5.js:用于学习p5.js的示例代码和相关材料
- 工作站:Chef自动化配置我的个人Linux工作站
- coding_test:python编码测试
- ASPNET全能化手机销售售后管理系统源码
- alldigitalradio:以nmigen编写的,针对FPGA的所有数字无线电平台(目前)
- dotnet C# 基础二进制处理 二进制数组与结构体的互转.rar
- DCRefresher:UIScrollview上拉下拉刷新器(UIScrollview Header and Footer refresher) for UITableView
- XBAP中的WCF入门指南