2012-08-13 33 views
0

是的,我一直模糊地試圖用this questions example用jsfiddle來測試一些東西。我期望構建一個JQuery可排序小部件,但首先,我需要了解如何訪問我創建的對象中的屬性 - 在大量搞亂它之後,立刻畫出了一個空白部分!如何在此Jsfiddle中使用JQuery訪問我的JSON對象的屬性?

Live Fiddle!

$('#ParentCategoryId').change(function() { 
    var data = 
{ 
"categories": { 
    "category1": { 
     "Name": "Maps", 
     "Id": 3, 
     "orderInList": 1 
    }, 
    "category2": { 
     "Name": "Books", 
     "Id": 2, 
     "orderInList": 2 
    } 
} 
}; 

$.ajax({ 
    url: 'http://jsfiddle.net/echo/jsonp/', 
    dataType: 'jsonp', 
    data: data, 
    success: function(data) { 
     show_response(data); 
    }, 
    type: 'GET' 
}); 
});    

function show_response(data) { 
    $.each(data, function() 
    {   
     alert(/**How could I access say, category1's Name property in here?**/); 
    }; 

編輯1

沒有得到充分的jsfiddle鏈接抱歉,保存和編輯它。

編輯2

ü sed JsonLint創建有效的Json。現在我可以獲得執行警報,但我不確定如何訪問其中的屬性!

編輯3

更新的jsfiddle鏈接到最新版本。

+0

很確定您的JSON無效。您正在使用[]數組表示法來定義一個對象。應該使用{}符號。 – Strelok 2012-08-13 08:53:31

+0

你是對的:)我正在驗證並糾正它'發現'jsonlint後,當你評論:) – Kiada 2012-08-13 09:01:29

回答

1

您需要的JSON字符串解析成一個對象:

function show_response(data) { 
    data = $.parseJSON(data); 
    $.each(data, function(position, value) 
    {   
     alert(value.name); 
    }; 

編輯:你的小提琴有語法錯誤。 JSON沒有創建,因爲jQuery中沒有toJSON方法。爲了使用每個迭代器來讀取您的類別,他們需要像這樣的數組:

categories = [name: "Book", value: ...], [name: "Movie", value: ...] 
+0

感謝您的提示。我會在警告框中寫出什麼來輸出Name屬性? this.Name不起作用hrrmm。 – Kiada 2012-08-13 08:37:18

+0

用正確的jsfiddle鏈接編輯原始文章抱歉! – Kiada 2012-08-13 08:38:37

+0

你的小提琴充滿了錯誤和未完成的代碼,我不知道你想要做什麼。 每個語句中,你可以訪問你的對象是這樣的: '$。每次(數據,功能(位置,值) { 警報(值);' – 2012-08-13 09:02:00