如何在jQuery中导航JSON对象?

时间:2013-04-24 11:43:23

标签: javascript jquery ajax json

我创建了这个处理我的数据库函数的web服务,这是对其中一个方法的AJAX调用。

 $.ajax({
        type: "POST",
        url: "Service/dataBaseService.asmx/getRMAData",
        data: '{"RMAId": 1 }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        cache: false,
        success: function (data) {
            console.log(data);
            alert(data.RMA_ID);
        }
  });

这是记录的内容:

({d:"[{\"RMA_ID\":1,\"RequestDate\":\"2013-02-28T00:00:00\",\"Company\":1,\"Status\":\"Accepted            \",\"Serial\":201764,\"LastChangeDate\":\"2013-02-28T00:00:00\",\"LastChangeBy\":\"Foreign    \",\"Price\":null}]"})

但是alert(data.RMA_ID)返回undefined以及data.d.RMA_ID

我如何掌握价值观?

2 个答案:

答案 0 :(得分:6)

您记录的data值是一个具有名为d的属性的对象,其中包含字符串值。您可以在服务器端进行调整,使d的值为对象而不是字符串,但是当前构造的方式,您可以使用JSON.parse将其解析为对象

完成后,生成的对象应该是一个包含一个对象的数组。因此,您对RMA_ID的访问权限如下:

var data = JSON.parse(data.d);
alert(data[0].RMA_ID);

答案 1 :(得分:0)

使用简单的javascript,您需要解析JSON响应

var resp = eval('(' + data + ')');

或通过jQuery

var resp = jQuery.parseJSON(data);

现在您可以使用'。'访问数据了。和密钥名称

console.log(resp.d[0].RMA_ID)