尝试访问类的属性时,AJax JSON调用错误

时间:2010-10-07 20:43:32

标签: javascript asp.net ajax json

我正在对后面的代码中定义的web方法进行JSON调用。 Web方法返回一个类对象。该类返回3个属性,一个是类型列表,另一个是整数。我通过以下方式访问这些:

success: function(result) {
                    alert(result);
                    alert(result.LookCount);
                    alert(result.length);
                    if(result.LookCount  > 0)
                    {
                        var Info = "";

                        for(var i = 0;i < result.LookUps.length; i++)
                        {
                           Info += CreateLookUpGrid(result.LookUps[i].Client,result.LookUps[i].ClientOrg);
                        }

alert(result.LookCount) - &gt;警报未定义,当我发出警报结果时,它会显示包含所有数据的强制结果字符串。因此,通过Web方法正确返回数据。但是我无法访问它。

2 个答案:

答案 0 :(得分:1)

您需要将结果字符串转换为对象。如果您使用的是最新版本的jQuery,则可以使用其parseJSON方法:

var data= $.parseJSON(result);
if (data.LookCount > 0) {
    ...
}

答案 1 :(得分:0)

可能,您需要使用result.d代替result。 ASP.NET尝试通过将JSON对象包装在“d”属性中来实现某些安全性,这样就不会在客户端上意外地评估和运行任何内容。

如果您正在执行实际返回字符串的操作(正如您在描述警报结果时指示的那样),则需要将字符串解析为JSON对象。您可以使用JQuery或其他javascript文件(如JSON2)执行此操作。