我通过AJAX调用php脚本,它返回一个json编码对象。
$.post("php/getCamera.php", {
cam_id: identifier
}, function(data){
console.log(data);
//var camera = JSON.parse(data);
var camera = $.parseJSON(data);
console.log(camera.name);
console.log(data['name']);
console.log(camera['name']);
});
}
这是我的PHP脚本:
<?php
require 'Camera.php';
$camera = new Camera();
if(isset($_POST["cam_id"])) {
$cam_obj = $camera->getCamera($_POST['cam_id']);
$cam_obj_array = get_object_vars($cam_obj);
echo json_encode($cam_obj_array);
}
?>
这是我的相机课程:
class Camera
{
public $id;
public $name;
...
}
在js控制台中,我看到了编码数据,但我无法访问其元素:
{"id":"6","name":"camera 1"}
undefined
undefined
undefined
undefined
答案 0 :(得分:2)
试试这个:
console.log(data.name);
从您的日志中可以看出,数据已经是JSON对象,因此无需进一步解析。
答案 1 :(得分:2)
在帖子请求的末尾添加'json':
$.post("php/getCamera.php", {
cam_id: identifier
}, function(data){
console.log(data);
console.log(camera.name);
console.log(data['name']);
console.log(camera['name']);
}, 'json');
}
这是完整的ajax语法dataType: "json"
的简写。
更好的是,使用getJSON
而不是帖子(但是,删除'json':)