访问从Web服务返回的json数据

时间:2012-10-16 18:03:45

标签: javascript ajax json jquery

我有一个返回此json数据的Web方法:

{
   "TotalItems":25,
   "Assets":
       [
           {"Id":"49c1fc23-edab-4087-bf3b-884b16399e4b"},
           {"Id":"5f8f5aaa-dcfa-4a3f-ae21-b7a9683551e5"},
           {"Id":"f589f567-c4d0-49e8-acf4-d3dcd1813b4d"},
           {"Id":"b5678b13-1d07-4be5-9c70-02f8475de771"}
       ]
}

这是我的ajax调用和数据返回时调用的方法。

$.ajax({
    type: "POST",
    url: "/Services.asmx/GetAssets",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(results) {

        alert(results["d"]);   // alerts json above
        alert(results.d);      // alerts json above

        // all of these alert "undefined"
        alert(results["d"]["TotalItems"]);
        alert(results["d"].TotalItems);
        alert(results.d["TotalItems"]);
        alert(results.d.TotalItems);
    }
});

如何访问json结果中的数据?

2 个答案:

答案 0 :(得分:4)

您可能希望使用JSON.parse将返回的JSON转换为实际的javascript对象。

var parsed = JSON.parse(results.d);
parsed.TotalItems //Allow access of total items variable from JSON

您可以在http://www.json.org/js.html

了解详情

答案 1 :(得分:1)

我认为results.d是一个字符串,您应该在访问任何属性之前使用JSON.parse(results.d)