正在将处理程序的结果转换为数组格式
本文关键字:转换 数组 格式 结果 处理 程序 | 更新日期: 2023-09-27 18:01:04
作为开发领域的新手,我有一个问题,我如何根据我对最佳实践的要求来获取数据
我的设计是这样的。
Java脚本(Ajax调用(>>ashx处理程序(点击数据库并返回数据(>>数据库(我的值(
我需要这样的数据才能在HTML 中呈现
var events_array = new Array();
events_array[0] = {
startDate: new Date(2013, 01, 25),
endDate: new Date(2013, 01, 25),
title: "Event 2013, 01, 25",
description: "Description 2013, 01, 25",
priority: 1, // 1 = Low, 2 = Medium, 3 = Urgent
frecuency: 1 // 1 = Daily, 2 = Weekly, 3 = Monthly, 4 = Yearly
};
events_array[1] = {
startDate: new Date(2013, 01, 24),
endDate: new Date(2013, 01, 24),
title: "Event 2013, 01, 24",
description: "Description 2013, 01, 24",
priority: 2, // 1 = Low, 2 = Medium, 3 = Urgent
frecuency: 1 // 1 = Daily, 2 = Weekly, 3 = Monthly, 4 = Yearly
}
events_array[2] = {
startDate: new Date(2013, 01, 07),
endDate: new Date(2013, 01, 07),
title: "Event 2013, 01, 07",
description: "2013, 01, 07",
priority: 3, // 1 = Low, 2 = Medium, 3 = Urgent
frecuency: 1 // 1 = Daily, 2 = Weekly, 3 = Monthly, 4 = Yearly
}
我想知道如何从我的ashx处理程序发送这样的数据。
我有EventEnfo的课。我可以从处理程序传递EventInfo的列表,并像上面那样在数组中格式化/转换它吗?有什么例子吗?
您可以使用JavaScriptSerializer
。因此,您可以从设计一个与所需JSON结构匹配的模型开始:
public class EventInfo
{
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
public string title { get; set; }
...
}
然后进入你的处理程序:
public void ProcessRequest(HttpContext context)
{
IEnumerable<EventInfo> result = ... fetch from db
var serializer = new JavaScriptSerializer();
context.Response.ContentType = "application/json";
context.Response.Write(serializer.Serialize(result));
}
更新:
以下是如何使用结果:
$.ajax({
url: '/myhandler.ashx',
success: function(events) {
$.each(events, function() {
alert('Title of the event: ' + this.title);
})
}
});
events_array不是一个数组,而是一个对象,所以创建新的array是错误的。做新对象或更好{}:
var events_array = {};
events_array[0] = {...
如果后端可以将内容转换为JSON对象,则可以通过ajax将其发送到客户端并解析为
JSON.parse(obj);