使用jQuery Ajax解析PHP对象数组

时间:2013-11-11 13:46:01

标签: php jquery ajax json

我正在尝试将数据库中的数据添加到jquery中以在网站上呈现。

例如: 使用example.php

<?php
function testFunction() {

$data = array()
$mydata = new stdClass;
$mydata->example = 'test';
$data[] = $mydata
return json_encode($data);
}

echo testFunction();
?>

离 的index.html

<script>
$.ajax({
                    type: 'POST',
                    url: 'example.php',
                    data: {map: map},   
                    cache: false,
                    dataType: 'json',                 
                    success: function(response) {
                      console.log(response[0].example);
                    }
});

</script>

输出:

的console.log(响应);

[“test”,$ family:function,$ constructor:function,each:function,clone:function,clean:function ...]

的console.log(响应[0]。实施例);

未定义

基本上,我收到的回复很好,当我记录它时它给了我一个有意义的结构。但是我似乎无法找到访问数组内部对象的正确方法,上面的例子只返回undefined。这请问的正确语法是什么?

3 个答案:

答案 0 :(得分:4)

您需要JSON.parse(response);回复。你应该能够像你需要的那样访问它..

var parsed_reply = JSON.parse(response);

编辑实际查看代码后

PHP

<?php

$data['example'] = "test";

echo json_encode($data);

?>

JAVASCRIPT

<script>
$.ajax({
                type: 'POST',
                url: 'example.php',
                data: {map: map},   
                cache: false,
                dataType: 'json',                 
                success: function(response) {
                  console.log(response['example']);
                }
});

</script>

输出:“测试”

答案 1 :(得分:1)

您需要在example.php中调用testFunction()

<?php
   function testFunction() {

    $data = array()
    $mydata = new stdClass;
    $data[] = $mydata->example = 'test';

    return json_encode($data);
  }
     echo testFunction();
?>

答案 2 :(得分:1)

function testFunction() {

$data = array();
$mydata = new stdClass;
$mydata->example = 'test';
$data[] = (array) $mydata;
return json_encode($data);
}

echo testFunction();

回复是:

[{"example":"test"}]

此处的关键是(array) $mydata,可将stdclass转换为数组,然后再将其放入$data