2011-01-20 71 views
1

我搜索了這個主題,我似乎無法找到解析JSON字符串來讀取對象的正確方法。如何將JSON字符串轉換爲JavaScript對象?

這裏是我的代碼

$.getJSON("<url>", 
function(data) { 

alert("success!"+data); 

}); 

輸出:

success![object Object],[object Object],[object Object],[object Object] 

螢火顯示正確的反應,當我點擊JSON標籤我看到的所有對象。

謝謝!

+0

jQuery爲您觸發JSON解析,因爲您使用的是`$ .getJSON`。如果你想查看原始字符串,只需要執行`.get()`請求。然後你可以做`var parsed = $ .parseJSON(data)`來解析它。 (我認爲這是jQuery代碼。) – user113716 2011-01-20 23:03:59

+0

是的,它是jQuery。我會嘗試你的建議,但我想知道我的方法有什麼問題,當我提醒數據[0] .key時,我得到未定義,在數據[0]中,我得到[object Object], [對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象] – jqueryEnthusiast 2011-01-20 23:11:57

+0

@user:更長的有一個字符串。 jQuery已經觸發了你的解析,所以你現在有了常規的javascript對象。要訪問他們的內容,您需要在`for/in`循環中遍歷它們,或者您需要預先確定其內容。如果由於某種原因你不知道密鑰是什麼,那麼使用`$ .get()`並查看字符串。或者,不是`alert(data)`,而是`console.log(data)`並打開瀏覽器的控制檯。這將讓你檢查內容。 – user113716 2011-01-20 23:16:37

回答

1

JSON = JavaScript Object Notation正是因爲它是在JavaScript中聲明對象文字的方式。數據參數已經是一個Javascript對象(在你的情況下對象的數組),您可以爲訪問:

data[index].fieldname 
4

當解析JSON字符串時,它會變成Javascript對象。如果您在對象上使用字符串方法,則返回字符串[object Object]

您需要改爲使用對象屬性訪問方法(例如alert(data.somekey);)。

4

如果您有Firebug,請不要在此類情況下使用alert()進行調試。使用console.log(data),您將直接瞭解您的JSON數據。 在這種情況下,你會意識到這絕對沒有錯:D。

0

在此輸入您的JSON字符串,然後點擊創建樹視圖的左上角,你會看到如何訪問它 link text

相關問題