使用ASP.NET一般处理程序或WebService返回JSON的实现代码,主要涉及到以下步骤:
1.创建一个类来模拟JSON数据:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
2.在一般处理程序或WebService中建立方法来处理请求并绑定数据:
[WebMethod]
public void GetPerson()
{
//模拟数据
List<Person> persons = new List<Person>
{
new Person{Name="张三",Age=20,Gender="男"},
new Person{Name="李四",Age=21,Gender="女"}
};
//序列化为JSON格式
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
string json = jsSerializer.Serialize(persons);
//设置响应头
Context.Response.ContentType = "application/json";
//输出JSON格式数据
Context.Response.Write(json);
}
3.调用该方法,通过ajax请求获取数据
示例1:在一般处理程序(.ashx文件)中实现返回JSON数据
定义一个通用处理程序,处理请求,返回JSON格式数据。在该处理程序中,定义方法绑定数据。
<%@ WebHandler Language="C#" Class="Handler" %>
using System.Web.Script.Serialization;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//模拟数据
List<Person> persons = new List<Person>
{
new Person{Name="张三",Age=20,Gender="男"},
new Person{Name="李四",Age=21,Gender="女"}
};
//序列化为JSON格式
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
string json = jsSerializer.Serialize(persons);
//设置响应头
context.Response.ContentType = "application/json";
//输出JSON格式数据
context.Response.Write(json);
}
public bool IsReusable
{
get
{
return false;
}
}
}
在页面中,通过ajax获取数据:
$.ajax({
type: "GET",
url: "Handler.ashx",
dataType: "json",
success: function (data) {
console.log(data);
//处理数据
},
error: function () {
alert("获取数据失败,请检查网络");
}
});
示例2:在WebService中实现返回JSON数据
首先,需要在项目中添加WebService。
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
[WebMethod]
public string GetPerson()
{
//模拟数据
List<Person> persons = new List<Person>
{
new Person{Name="张三",Age=20,Gender="男"},
new Person{Name="李四",Age=21,Gender="女"}
};
//序列化为JSON格式
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
string json = jsSerializer.Serialize(persons);
//设置响应头
Context.Response.ContentType = "application/json";
//输出JSON格式数据
Context.Response.Write(json);
}
}
在页面中,通过ajax获取数据:
$.ajax({
type: "POST",
url: "Service.asmx/GetPerson",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
//处理数据
},
error: function () {
alert("获取数据失败,请检查网络");
}
});
以上示例中,我们演示了在一般处理程序和WebService中如何返回JSON格式数据,同时也为大家演示了如何使用ajax获取返回的JSON数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用ASP.NET一般处理程序或WebService返回JSON的实现代码 - Python技术站