解析C#中的JSON POST请求

5

有些服务器发送POST请求,附带以下信息:

{
    payload: {
    uid: "900af657a65e",
    amount: 50,
    adjusted_amount: 25
},
 signature: "4dd0f5da77ecaf88628967bbd91d9506"
}

我应该如何在ASHX处理程序中成功处理它?

5
这不是有效的JSON。 - SLaks
那是什么?在 Ruby 的“文档”示例中,我看到他们使用 JSON 库来解析这个。 - user2441297
键需要加引号。 - Mike Cheel
好的。假设这是JSON格式的数据,我知道如何解析JSON字符串。那么我该如何从POST请求中获取这个字符串呢?我没有指定任何保存它的POST参数(context.Request["????"])。 - user2441297
http://jsonlint.com/ 可以告诉你它的问题所在 - 正如 Mike 所指出的那样,键需要用引号括起来,而不是裸标识符。 - Ryan M
@user2441297 我编辑了我的答案,并添加了一些代码,使用context.Request.InputStream读取请求正文。 - Ryan M
1个回答

11

正如SLaks所指出的,那不是有效的JSON。但是在一般情况下,在.NET中序列化/反序列化JSON的好解决方案是JSON.NET库:http://json.codeplex.com/。那里有大量的文档可以让你入门。

编辑:要读取请求主体,请尝试类似以下的内容

 string postData = new System.IO.StreamReader(context.Request.InputStream).ReadToEnd();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接