访问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来发送不同的数据?
答
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检查解码对象。
'json_decode()'会返回从json对象创建的另一个数组,您可以简单地使用'foreach'来循环,还有什么问题吗? – georoot
我使用echo而不是var_dump来测试json_decode()的成功。我现在发现json_decode()确实按预期工作,并且我试图错误地输出它。谢谢。 – FantasticSponge