日期:2014-05-17  浏览次数:20555 次

请教一个关于jQuery解析json的问题
我在页面的后台代码里写了一个方法,后台代码的方法返回一个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)都可。