【问题标题】:Accessing JSON objects in PHP Array访问 PHP 数组中的 JSON 对象
【发布时间】:2016-12-04 21:10:55
【问题描述】:

我有一些 JS 正在向 PHP 控制器发送 POST 请求。 JS代码如下:

$.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 以不同的方式发送数据?

【问题讨论】:

  • json_decode() 将返回从 json 对象创建的另一个数组,您可以简单地使用 foreach 循环它,还有什么问题吗?
  • 我使用 echo 而不是 var_dump 来测试 json_decode() 是否成功。我现在发现 json_decode() 确实按预期工作,并且我尝试错误地输出它。谢谢。

标签: javascript php arrays json post


【解决方案1】:
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 来检查解码的对象。

【讨论】:

    猜你喜欢
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多