工作中遇到直接使用webform中的page_load()的方法直接返回json结果
但是直接使用Response.Write("");这个方法返回的结果是字符串,在前端获取的是字符串,不能直接转为json数据
大概思路是在后端page_load()将object 序列号成json格式的字符串
前端将字符串反序列化成json对象
后端代码:
protected void Page_Load(object sender, EventArgs e) { var jsonObject = new { Result = 0, Msg = "测试" }; string jsonString = JsonConvert.SerializeObject(jsonObject); Context.Response.Write(jsonString); Context.Response.End(); }
JsonConvert.SerializeObject();这个方法是引用了第三方的dll,Newtonsoft.Json.dll
前端代码:
function test(parameters) { $.ajax({ type: "post", url: "About.aspx", data: "", async: true, success: function (jsonString) { var resultJsonObject = JSON.parse(jsonString); if (resultJsonObject.Resulet == "1") { alert("成功"); } else { alert(resultJsonObject.Msg); } alert(resultJsonObject.Msg); window.location.href = "Default.aspx"; } }); }
这里JSON.parse();是引用Json2.js这个文件
或者微软的SDK也自带,如图