Php AJAX:如何将对象返回到jquery?

Php AJAX:如何将对象返回到jquery?,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我想知道是否可以将一个对象从json_encode返回到JQuery。如果我要做这样的事 $.ajax({ type : 'POST', url : 'next.php', dataType : 'json', data : { nextID : 2 }, success : function ( data ) { // do something with data.myObject.memberVariable

我想知道是否可以将一个对象从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!

      }
});     
这是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]。如何实际访问对象的变量?希望上面的代码能帮助解释我的问题:

这个怎么样

 echo json_encode($return['myObject']);
您是否返回了json头?

您的memberVariable包含一个对象。 要查看原始数据,请查看对象属性:

alert(data.myObject.memberVariable.someProperty);

也许在json_encode上解析$myObj

一些提示/问题:

你应该做一个测试 打印r$myObj以确保 您的对象是有效的,并且具有有效的 数据成员。memberVariable是一个 正如SLaks所指出的, 这就是为什么你会 [对象]。 在对其运行json_encode后,回显$return,并检查json响应是否有效,以及所查找的成员变量是否正确。可以格式化JSON以便于阅读。 getMyObject是如何创建的 功能工作?当你回音 $myObj->m_url是否返回 任何东西 最后,您可能需要安装 如果你正在使用 Firefox或Inspector(如果需要) 您正在使用Webkit浏览器,并且 使用console.logobject而不是 而不是使用alertobject。这将使您能够更深入地查看对象,而不是[object]。
在JQuery成功函数中尝试以下操作:

alert(data.ObjectProperty);

您可以使用句点访问对象的属性。

警报功能有助于调试。它说未定义-我的类是用php创建的,这有关系吗?这是我们班的一个例子。。所以当我尝试访问$m_url时,我做了。。。alertdata.myObject.m_url;但正如我所说,它在我的警报框中返回未定义。谢谢你看过原始的JSON了吗?想知道怎么做。我最近刚刚在找到一个教程后研究了这个问题。只需在浏览器中运行next.php。原始json应该根据您的脚本在屏幕上显示。您应该能够点击“查看源代码”查看它。为了便于测试,您可以将POST类型更改为GET,这样您就可以使用诸如next.php?nextID=2Ok之类的URL进行调试。我想我有原始JSON。。。{图像:[{},{},{},{},{}],错误:false,id:3,日期:10\/2010,标题:Quick Ship},因此4{}是MyObject。我想,因为我有一个MyObject数组,所以我必须执行类似以下操作:data.myObject[0].m_url-但这对我也不起作用。我认为你一直都是对的,我只是当时不理解它不管怎么说,这是我对任何感兴趣的人的最终解决方案。我不得不从我的代码中修改它来缩短它,希望在翻译过程中不会丢失任何东西。