Json.NET - JsonConvert.DeserializeObject没有做任何事情

时间:2011-05-08 16:18:55

标签: .net json.net deserialization

我正在使用Json.NET反序列化jQuery.post()JSON参数。

回发的原始值采用以下格式

jobs=4-5-6-7&invoiceDate=04-05-11

我正在尝试反序列化的课程是

public class InvoiceRequest
{
    public DateTime InvoiceDate { get; set; }
    public string JobList { get; set; }
}

我正在使用的代码是

var sr = new System.IO.StreamReader(Request.InputStream);
var line = sr.ReadToEnd();
var deserializedProduct = JsonConvert.DeserializeObject<InvoiceRequest>(line);

问题是当第三行被击中时没有任何反应。当我单步执行代码时,它会到达该行,然后......没有。步进器消失,页面永远不会收到任何响应。

有谁能解释我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

以下是application/x-www-form-urlencoded请求,而不是JSON:

jobs=4-5-6-7&invoiceDate=04-05-11

如果您想要JSON,请求应如下所示:

{ 'jobs': '4-5-6-7', invoiceDate: '04-05-11' }

答案 1 :(得分:3)

它不起作用,因为您的数据不是JSON。要么更改JavaScript以便将数据作为JSON发送,要么使用HttpUtility.ParseQueryString来解析它当前所处的格式。