2012-09-10 104 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選項卡),您可以瀏覽它們並查看所有可以看到的內容。