2012-01-18 107 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

相關問題