我使用asp.net和web表单。
在我的项目中,我有asmx web服务
在我的项目中,我有asmx web服务
[WebMethod] public string GetSomething() { // avoid circual reference(parent child) List<RetUsers> res = repo.GetAllUser().Select(c => new RetUsers {User_ID = c.User_ID,User_Name = c.User_Name,Date_Expire = c.Date_Expire }).ToList(); string res1 = res.ToJson(); // extension methods return res.ToJson(); }
结果是这种格式。
[ {"User_ID":1,"User_Name":"Test 1","Date_Expire":null},{"User_ID":2,"User_Name":"Test 2","Date_Expire":null} ]
1 – Test 1,2 – Test 2.
解决方法
返回列表,并使用[ScriptMethod(ResponseFormat = ResponseFormat.Json)]属性 – 它将创建JSON对象作为自动返回:
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public List<RetUsers> GetSomething() { // avoid circual reference(parent child) List<RetUsers> res = repo.GetAllUser().Select(c => new RetUsers {User_ID = c.User_ID,Date_Expire = c.Date_Expire }).ToList(); return res; }
在JS方面:
$.ajax( { type: "POST",async: true,url: YourMethodUrl,data: {some data},contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg) { var resultAsJson = msg.d // your return result is JS array // Now you can loop over the array to get each object for(var i in resultAsJson) { var user = resultAsJson[i] var user_name = user.User_Name // Here you append that value to your label } } })