我在页面的后台代码里写了一个方法,后台代码的方法返回一个Json格式的字符串,供前端jquery调用解析。
代码如下:
- C# code
[WebMethod] public static string GetFollowInfo(string followId) { string followInfo = string.Empty; OrderFollow follow = null; if (!string.IsNullOrEmpty(followId)) { Guid id = new Guid(followId); follow = followService.FindById(id); } if (follow != null) { followInfo = JsonConvert.SerializeObject(follow); } return followInfo; }
前端Js代码:
- JScript code
function edit(id) { if (id == "" || id == undefined) { return false; } $.ajax({ url: "Customer_Order_Follow.aspx/GetFollowInfo", type: "POST", data: "{'followId':'" + id + "'}", contentType: "application/json;charset=utf-8", success: function (data) { var result = eval(data.d); alert(result); //这里显示出来的是正确的json串{"followId":"12344","followname":"abc"} }, error: function (msg) { alert("Error : " + msg); } }) }
我想在js代码中显示出来json串中的followname这个属性的值"abc",用result.followname这样就提示是未定义
请教我该怎么获取这个json串中的followname的值?
------解决方案--------------------------------------------------------
var result = eval('('+data.d+')');
------解决方案--------------------------------------------------------
var result = JSON.parse(data.d);
有些浏览器没有JSON对象,最好引用Json2.js
可以从这里下载
https://github.com/douglascrockford/JSON-js/
------解决方案--------------------------------------------------------
data.d 是个Object吧,直接data.d.followname,若data.d是字符串{"followId":"12344","followname":"abc"}
,则用eval("("+data.d+")")或用Jquery中的$.parseJSON(data.d)都可。