我想知道我是否可以将对象从json_encode()
返回给JQuery。如果我要这样做......
$.ajax({
type : 'POST',
url : 'next.php',
dataType : 'json',
data : { nextID : 2 },
success : function ( data ) {
// do something with data.myObject.memberVariable
},
error : function ( XMLHttpRequest, textStatus, errorThrown) {
// didn't work!
}
});
AND this(next.php)
<?php
include_once('myClass.php');
$myObj = getMyObject( $_POST['nextID'] ); // get an object
$return['myObject'] = $myObj;
echo json_encode($return);
?>
现在我已经测试了这种方法,但每当我尝试data.myObject.memberVariable
时,我得到的只是[object Object]
。我怎样才能真正访问对象的变量?希望上面的代码有助于解释我的问题:(
答案 0 :(得分:4)
这个怎么样?
echo json_encode($return['myObject']);
你是否退回了json标题?
答案 1 :(得分:1)
您的memberVariable
包含一个对象
要查看原始数据,请查看对象属性:
alert(data.myObject.memberVariable.someProperty);
答案 2 :(得分:1)
也许在json_encode上解析$ myObj
答案 3 :(得分:1)
一些指示/问题:
print_r($myObj)
确保这一点
您的对象有效且有效
数据成员。 memberVariable
是一个
像SLaks指出的对象本身,
这就是你得到的原因
[object Object]
。$return
之后回显json_encode()
并检查JSON响应是否有效,以及您要查找的成员变量是否正确。 JSONLint可以格式化您的JSON以便于阅读。getMyObject()
怎么样
功能工作?当你回声
$myObj->m_url
会回来
什么?console.log(object)
而不是使用alert(object)
。这样可以让您更深入地查看对象,而不是[object Object]
。答案 4 :(得分:1)
在JQuery成功函数中尝试:
alert(data.ObjectProperty);
您可以使用句点(。)来访问对象的属性。