2012-09-10 60 views
-4

我需要帮助。我的代码就像这样:使用jQuery.getJSON()获取对象

<script type="text/javascript"> 
$(document).ready(function() { 
    var setting = { 
    check: { 
     enable: true 
    }, 
    data: { 
     simpleData: { 
     enable: true 
     } 
    } 
    }; 
    var url = "<%=path%>/manageMenu/getAllPersonTree.action"; 

    $.getJSON(url, function(data) { 
    $.each(data, function (name, value) { 
     if (name == "1") { 
     $.fn.zTree.init($("#tree"), setting, value); 
     } 
     alert(data); 
    }); 
    }); 
}); 
</script> 

alert(data)结果是[object Object],我怎么能获取对象的真正价值?

+2

data是一个转换为字符串yeilds [object Object]的对象,先做一点调查。 –

+0

@ user1658116:'alert(data)'的结果应该是'[object Object]',并不意外。发布您的JSON并告诉我们您要访问的名称/值。 –

+0

注意这个循环,你在循环内部做了一个警告(数据),但是数据永远不会改变。即使为演示的目的,我会建议让它脱离循环。还喜欢使用console.log(数据),你会看到它作为一个树在你的控制台 – TecHunter

回答

0

为了得到data对象的字符串表示尝试JSON.stringify方法:

alert(JSON.stringify(data)); 
+0

感谢分享 – user1658116

2

检查的对象与

console.dir(data); 
+0

这是一个答案或评论? –

+0

OP询问如何检查他的var的值,所以这是一个答案。 – Asciiom

+2

这是一个答案。如果他这样做,他会知道如何访问该对象。 –

0

alert是一个糟糕的调试工具。它是阻塞的,这意味着您的代码将停止执​​行,直到您放弃警报。尝试使用console.log(data)而不是:)

仅供参考,如果您不熟悉调试JavaScript,那么这是一个很好的开始; http://fixingthesejquery.com

+0

这是一个答案或评论? –

+0

Ehm,一个答案?他问为什么警报(数据)显示[Object object],我给他一个替代方案。显然他通过实际使用数据参数来回答关于自己获取数据的部分。 –

+0

如何使用console.log(data)我怎么才能看到这个值,我想知道.. – user1658116

0

结果赋给一个全局变量(只后声明变种“变种URL = ...”例如,然后将数据分配给该var)。然后,您可以使用Firebug,它会显示您的对象(DOM选项卡),您可以浏览它们并查看所有可以看到的内容。