将JSON数据发送到ASP.NET HTTP处理程序

将JSON数据发送到ASP.NET HTTP处理程序,asp.net,json,http,httphandler,Asp.net,Json,Http,Httphandler,我有一个ASP.NET 4.0 HTTP处理程序,它应该以json格式接收和发送数据。我使用jquery将序列化为字符串的json对象发送到处理程序。它正确地发送了请求,但我不知道如何从传递给处理程序的httpcontext中检索数据,以及如何对其进行反序列化。。。有人能帮我吗 更新1 $.ajax({ type: "POST", url: "myurl.ashx", dataType: "json", contentType: "application/json

我有一个ASP.NET 4.0 HTTP处理程序,它应该以json格式接收和发送数据。我使用jquery将序列化为字符串的json对象发送到处理程序。它正确地发送了请求,但我不知道如何从传递给处理程序的httpcontext中检索数据,以及如何对其进行反序列化。。。有人能帮我吗

更新1

$.ajax({
    type: "POST",
    url: "myurl.ashx",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: $.toJSON({
        ...
    }),
    success: function (response) {
        ...
    }
});

您是否以POST或GET请求的形式从jquery发送数据?在Http处理程序中,您可以通过
HttpContext.Request
通过
Forms
QueryString

例如,
stringjson=HttpContext.Current.Request.Forms[“json”]

要反序列化,可以使用内置的
System.Web.Script.Serialization.JavaScriptSerializer
类,如下所示

string json = HttpContext.Current.Request.Forms["json"];
var js = new JavaScriptSerializer();
YourType obj = js.Deserialize<YourType>(json);
string json=HttpContext.Current.Request.Forms[“json”];
var js=新的JavaScriptSerializer();
YourType obj=js.Deserialize(json);

我将数据作为POST请求发送。。。如果有帮助的话,我正在尝试通过bayeux协议实现一个非常简单的comet c#服务器。我不知道在这种情况下,是否最好以GET请求的形式发送数据,但无论如何,在请求中。表单集合中有0项如果您以POST的形式发送,则表单集合不应为空。您的jquery代码是什么样子的?这是一篇非常古老的文章,但我想我应该指出一个好的答案——表单集合应该是空的,您需要解析请求输入流;答案很可能是我不知道toJSON插件,但我知道数据需要一个键/值对对象,其中键是您将从表单集合请求的。所以我想问题是你知道,你的$ToSJON调用返回什么。