2012-01-18 103 views
2

我正在为客户端应用程序使用骨干MVC框架。它将JSON数据发布到一个asp.net应用程序,而不是一个asp MVC应用程序。我如何收到我的JSON数据? JSON字符串是否在HttpRequest对象中的某处? .NET是否解码JSON字符串?我希望能够在C#中提供对象或模型,并在反序列化JSON字符串时使用此对象,但在HTTP Post操作期间,我可以在哪里访问json字符串?将JSON数据发布到asp.net应用程序

+0

你看过JSON.net网站吗 – MethodMan 2012-01-18 20:38:21

+0

如果你可以包括你的JavaScript代码看起来像你在发布数据的位置,这将有所帮助。 – 2012-01-18 20:43:04

+0

我正在为我的JavaScript使用骨干MVC。所以我有一个具有几个属性的模型,只需调用模型save()函数即可。这基本上做了一个HTTP帖子与模型属性作为这样的JSON字符串:{id:5,name:“ModelName”} – 2012-01-18 21:41:02

回答

4

JSON.net很好地工作。

Stream s = Request.InputStream; 
StreamReader sr = new StreamReader(s); 
Newtonsoft.Json.Linq.JObject jObj = Newtonsoft.Json.Linq.JObject.Parse(sr.ReadLine()); 
string name = (string)jObj["name"]; 
1

使用Fiddler,请求是什么样的?我会想象它将发送JSON附加到特定的关键字段。如果没有关键字段,那么你应该能够将Request.InputStream直接读入一个字符串,然后对其进行反序列化。

+0

json看起来像这样:{“id”:“10”,“name”:“ doc“},那就是它,它不附加到特定的关键字段。我将尝试从Request.InputStream进行反序列化。谢谢。 – 2012-01-18 21:43:53

0

回答您的问题:

我如何收到我的JSON数据? 至少应该在您的Request.Form变量集合中(即,如果将表单发布到ASP.NET页面)。这是一个名称值集合,所以你应该可以从那里访问它。

JSON字符串是否在HttpRequest对象的某处? 是的 - 它应该是Request.Form的一部分。

.NET是否解码JSON字符串? 只有你告诉它。在WCF服务中,您可以指定WebMessageFormat的内容(XML或JSON)。在MVC中,您可以相应地处理JSON数据。您需要使用自定义处理程序来处理此问题,或者自行解码。

希望这会有所帮助。如果您有特定情况,请提供一些示例代码或提供更多详细信息,我会更新我的答案。

+0

我没有发布表单。我正在使用backbone.js通过模型save()函数将模型发布到服务器。我没有使用WCF。谢谢您的帮助。 – 2012-01-18 21:45:22

+0

但是,如果您仍然将它发布到仍然使用基本ASP.NET回发模型的ASP.NET页面,这应该仍然相关。实际上,我的答案大多数(如果不是全部的话)与ASP.NET MVC相关。 – 2012-01-18 21:48:02

相关问题