Jquery中利用getJSON在ASP.NET获取和处理JSON数据详解

0 下载量 3 浏览量 更新于2024-08-30 收藏 44KB PDF 举报
在ASP.NET中,jQuery的getJSON方法是一种强大的工具,用于异步从服务器获取JSON数据并处理。本文将详细介绍如何在jQuery中利用getJSON与ASP.NET配合,实现数据的交互。 首先,我们需要准备一个名为`Customer`的C#类,用于表示JSON对象的结构。这个类包含属性如`Unid`、`CustomerName`、`Memo`和`Other`,示例代码如下: ```csharp public class Customer { public int Unid { get; set; } public string CustomerName { get; set; } public string Memo { get; set; } public string Other { get; set; } } ``` 接着,我们创建一个名为`Json_1.ashx`的ASP.NET AJAX Handler (ASHX)文件,用于处理JSON数据的生成。在这个文件中,我们创建了两个`Customer`实例,并使用`JsonConvert.SerializeObject`方法将其转换为JSON字符串: ```csharp Customercustomer = new Customer { Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" }; string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer); // 对于多个对象的集合,如: Customercustomer2 = new Customer { Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" }; List<Customer> _list = new List<Customer>(); _list.Add(customer); _list.Add(customer2); string strJsonList = Newtonsoft.Json.JsonConvert.SerializeObject(_list); context.Response.Write(strJson); // 单个对象的情况 context.Response.Write(strJsonList); // 多个对象的情况 ``` 在jQuery客户端,我们编写一个函数`GetCustomer_Ashx()`,通过getJSON调用`Json_1.ashx`来获取数据: ```javascript function GetCustomer_Ashx() { $.getJSON( "webdata/Json_1.ashx", // 调用服务器端ASHX的URL function(data) { // 数据接收回调 var tt = ""; $.each(data, function(k, v) { // 遍历接收到的JSON对象 tt += k + ": " + v + "<br/>"; }); $("#divmessage").html(tt); // 将数据添加到页面元素中 } ); } ``` 当调用`GetCustomer_Ashx()`时,jQuery会发起一个HTTP GET请求到服务器,服务器响应的JSON数据会被解析并传递给回调函数,这里我们用`$.each`遍历数据,然后动态更新HTML内容。 对于返回实体集合的ASHX,只需稍微修改服务器端的代码,将单个对象序列化改为列表的序列化即可。客户端的处理逻辑保持不变,因为getJSON可以接受JSON数组作为数据源。 jQuery的getJSON方法在ASP.NET中用于与服务器进行轻量级通信,能够有效地处理异步JSON数据,并在前端以动态方式展示或处理数据。通过结合C#的实体类和JSON序列化,可以实现高效且易于维护的数据交互。