访问PHP阵列中的JSON对象

访问PHP阵列中的JSON对象

问题描述:

我有一些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

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检查解码对象。