在web開發(fā)中,常常會(huì)遇到需要接收json數(shù)據(jù)類型的情況。而在C#語(yǔ)言的ASP.NET中,我們可以通過(guò)以下代碼來(lái)實(shí)現(xiàn)接收json數(shù)據(jù)類型的功能:
using System.Web.Script.Serialization; public void ProcessRequest(HttpContext context) { // 獲取post提交的json數(shù)據(jù) string json = string.Empty; context.Request.InputStream.Position = 0; using (StreamReader inputStream = new StreamReader(context.Request.InputStream)) { json = inputStream.ReadToEnd(); } // 反序列化json為對(duì)象 JavaScriptSerializer js = new JavaScriptSerializer(); MyObject obj = js.Deserialize(json); // 對(duì)obj進(jìn)行操作。。。 } public class MyObject { public int Id { get; set; } public string Name { get; set; } }
以上代碼中,我們首先通過(guò)HttpContext對(duì)象獲取到post提交的json數(shù)據(jù)。注意,為了避免數(shù)據(jù)流被“消耗”掉,我們需要將流的位置重置到0(即重新讀取一次流)。
然后,我們通過(guò)JavaScriptSerializer對(duì)象將json字符串反序列化為MyObject對(duì)象。MyObject是一個(gè)自定義類,根據(jù)具體需求來(lái)定義。
使用ASP.NET接收json數(shù)據(jù)類型,需要在客戶端使用類似于以下方式提交數(shù)據(jù):
$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "yourPage.aspx/yourMethod", data: '{"Id":1,"Name":"Tom"}', dataType: "json", success: function(result) { // 處理返回的結(jié)果 }, error: function() { // 處理錯(cuò)誤 } });
好了,通過(guò)以上代碼,我們可以很方便地實(shí)現(xiàn)ASP.NET接收json數(shù)據(jù)類型的功能。當(dāng)然,由于json數(shù)據(jù)類型的特殊性,我們需要特別注意數(shù)據(jù)的格式是否正確。祝大家編程愉快!