C# 实现后台生成 JSON 数据

5星 · 超过95%的资源 需积分: 40 273 下载量 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序列化等关键步骤,是典型的前后端数据交互的实现方式。