2016-12-04 107 views
0

我有一些JS正在向PHP控制器發送POST請求。 JS代碼如下:訪問PHP陣列中的JSON對象

$.ajax({ 
    url: 'map-controller/coordcontroller.php', 
    data: {myData:JSON.stringify(myArray)}, 
    type: 'post', 
    success: function(output) { 
    console.log(output); 
    } 
}); 

在服務器端,$ _ POST [「myData的」]如下:

[{"lat":36.8867497490586,"lng":-76.3046246767044},{"lat":36.88671756964517,"lng":-76.30381464958191}] 

據我所知,我的數據駐留在單個元件陣列中($ _POST [「myData」]),其中包含一系列由逗號分隔的對象。我已經嘗試json_decode(),但我有一種感覺,它不工作,因爲我的數據對象實際上是一個數組,而不是實際的JSON數據。

我的問題:如何訪問循環中的每個對象?或者是我的實現有缺陷,我應該修改我的Javascript來發送不同的數據?

+0

'json_decode()'會返回從json對象創建的另一個數組,您可以簡單地使用'foreach'來循環,還有什麼問題嗎? – georoot

+0

我使用echo而不是var_dump來測試json_decode()的成功。我現在發現json_decode()確實按預期工作,並且我試圖錯誤地輸出它。謝謝。 – FantasticSponge

回答

0
var_dump (json_decode($_POST["myData"])); 

結果:

array(2) { 
    [0]=> 
    object(stdClass)#1 (2) { 
    ["lat"]=> 
    float(36.886809817261) 
    ["lng"]=> 
    float(-76.304672956467) 
    } 
    [1]=> 
    object(stdClass)#2 (2) { 
    ["lat"]=> 
    float(36.886146919127) 
    ["lng"]=> 
    float(-76.305075287819) 
    } 
} 

我的錯誤是使用echo代替的var_dump檢查解碼對象。