2014-04-16 47 views
1

兒童的JSON值我有兩個JSON對象的端點如下:得到對象

{ 
"main" { 
"id": 1, 
"title": Main Title, 
}, 
{ 
"secondary" { 
"id": 3, 
"title": Secondary Title, 
}, 

我使用的骨幹,並具有以下$每個功能,但使用點符號,我似乎無法能夠瀏覽標題(例如main.title或secondary.title)。我錯過了什麼?

var collection = new contentArticles([], { id: urlid }); 
      collection.fetch({ 
       dataType: "json", 
       success: function (model, response) { 
        console.log(response); 
        $.each(response, function (index, value) { 
         console.log(value.main.title); 
         $("#test2").append('<li>' + value.main.title + '</li>'); 
        }); 

在我的控制檯,它給出了一個錯誤:遺漏的類型錯誤:無法讀取的不確定

+0

你不要有一個叫做'main'在第二對象鍵, – tymeJV

+0

這只是引用的第一個對象 – Kode

+0

你的JSON似乎是無效。你能重新檢查一下嗎? –

回答

1

財產「標題」假設返回時,你的JSON實際上是有效的(它是無效的,你帶路它),嘗試

$("#test2").append('<li>' + value.title + '</li>'); 

您的實際JSON應該是這樣的:

{ 
    "main": { 
     "id": 1, 
     "title": Main Title, 
    }, 
    "secondary": { 
     "id": 3, 
     "title": Secondary Title, 
    } 
} 

若y OU只是想主要的價值,而不是使用$。每(),刪除整個塊,做:

$("#test2").append('<li>' + response.main.title + '</li>'); 

和你的最終代碼看起來是這樣的:

var collection = new contentArticles([], { id: urlid }); 
collection.fetch({ 
    dataType: "json", 
    success: function (model, response) { 
     console.log(response); 
     if (response.main.title !== 'undefined'){ 
      $("#test2").append('<li>' + value.main.title + '</li>'); 
     }else{ 
      console.log('Main is undefined'); 
     } 
    } 
}); 

最後編輯:它看起來像你想的JSON,如:

{ 
    "main": [{ 
     "id": 1, 
     "title": "Main Title" 
    }, { 
     "id": 2, 
     "title": "Main Title 2" 
    }, { 
     "id": 3, 
     "title": "Main Title 3" 
    }], 
    "secondary": [{ 
     "id": 5, 
     "title": "Secondary Title 5" 
    }, { 
     "id": 34, 
     "title": "Secondary Title 34" 
    }, { 
     "id": 36, 
     "title": "Secondary Title 36" 
    }] 
} 

如果這是你的代碼是這樣的情況:

var collection = new contentArticles([], { id: urlid }); 
collection.fetch({ 
    dataType: "json", 
    success: function (model, response) { 
     console.log(response); 
     $.each(function(index, value){ 
      $.each(item_index, item_value){ 
       $("#test2").append('<li>' + item_value.title + '</li>'); 
      } 
     }); 
    } 
}); 
+0

value.title作品的原因,但我怎麼只得到內「主」 – Kode

+0

@Kode標題 - 見我的編輯 –

+0

謝謝Thad。我在main下有多個項目,所以我需要使用$ .each – Kode

1

問題在於輸入JSON,它應該是

{ 
    "main" :{ 
    "id": 1, 
    "title": "Main Title" 
    }, 
    "secondary":{ 
    "id": 3, 
    "title": "Secondary Title" 
    } 
}