2015-08-23 84 views
1

對於我的項目,我嘗試創建一個ajax調用並處理數據。laravel處理json子數組

我的Ajax調用:

$.ajax({ 
     type: 'GET', 
     dataType: "json", 
     url: ****, 
     data: {****}, 
     success: function(data){ 
      console.log(data.rooms); 
      $('.pagination').html(data.paginate); 
     }, 
     error: function(){ 
      alert('failure'); 
     } 
    }); 

在我創建的響應與laravel服務器:

return response()->json(['rooms' => $rooms->toJson() , 'paginate' => $bathrooms->render()]); 

在我的AJAX調用JSON響應looks like(編輯原來這就是JSON):

{"rooms": "{\"total\":3,\"per_page\":9,\"current_page\":1,\"last_page\":1,\"next_page_url\":null,\"prev_page_url\":null,\"from\":1,\"to\":3,\"data\":[{\"id\":237,\"name\":\"Modern met allure\",\"description\":\"Badkamer blablabla\",\"collection_id\":187,\"style_id\":7,\"created_at\":\"-0001-11-30 00:00:00\",\"updated_at\":\"-0001-11-30 00:00:00\"},{\"id\":243,\"name\":\"TIjdloze charme\",\"description\":\"Tijdloze charme\",\"collection_id\":187,\"style_id\":2,\"created_at\":\"-0001-11-30 00:00:00\",\"updated_at\":\"-0001-11-30 00:00:00\"},{\"id\":245,\"name\":\"Staande badkraan Bollicine\",\"description\":\"blablabla\n\",\"collection_id\":199,\"style_id\":7,\"created_at\":\"-0001-11-30 00:00:00\",\"updated_at\":\"-0001-11-30 00:00:00\"}]}","paginate": ""} 

現在我想環路所以首先我想所有的數據對象:

console.log(data.rooms); 

這給了我想要的第一部分(僅限於房間不是something_else,接下來我試圖通過

console.log(data.rooms.data); 

只得到數據的一部分,但隨後的結果是

undefined 

我應該如何訪問/循環數據(房間的子部分)。

+0

'console.log(data.rooms)'工作嗎? – RRK

+0

@RejithRKrishnan是的,這給了我想要的第一部分(只有房間) –

+0

真正的ajax響應是什麼?因爲在json中不能有''',只有'''你在服務器上用什麼編碼數據? –

回答

1

我覺得這裏有兩個data這個問題。一個是變量名稱,另一個是關鍵名稱。 嘗試使用兩種:

console.log(data.rooms["data"]); 

,或選擇其他名稱success參數:

success: function(roomsdata){ 
    console.log(roomsdata.rooms); 
    $('.pagination').html(roomsdata.paginate); 
}, 

UPDATE:上看到你如何在服務器上生成JSON:

return response() 
    ->json([ 
     'rooms' => $rooms->toJson() , 
     'paginate' => $bathrooms->render() 
    ]); 

你」重做雙JSON編碼:首先編碼$rooms到json與toJson()和th en編碼json-string到json再次與json()。刪除toJson()電話,只留下json()

+0

u_mulder兩次都試過,如果我使用chrome複製了對象,並且出於某種原因,它有很多反斜槓(請參閱編輯的問題)。這可能是一個問題嗎? –

+0

也許它會把'toJson'從'$ rooms-> toJson()'移除。 –

+0

嘗試它現在我得到的浴室作爲對象,但我不能打開或查看它看起來像的對象:房間:對象 __proto__:對象 –