HTML响应使用end_Json_Encoder ::编码

HTML响应使用end_Json_Encoder ::编码

问题描述:

我在这里为两个问题的Zend控制器传递一个对象时:
我想通过我在Zend的创建控制器
HTML响应使用end_Json_Encoder ::编码

public function exampleAction() { 
    $answers = array(); 
    for($i = 0 ; $i < 3 ; $i++) 
    { 
       $answer = new Answer(); 
       $answer->answer_id = 5 ; // for example 
       $answer->thanked = 'true';// for example 
       $answers[] = $answer; 
    } 

    echo Zend_Json_Encoder::encode($answers); 
} 

Jquery的JSON对象帖子的功能是:

$.post(
     "/memberactions/getthanks/", 
     {values:values}, 
     function(res){ 
      alert(123);  
     } 
     , 'json') 

首先问
为什么得到的回答是HTML?响应必须在JSON中?

第二个问题
HTML响应是这样

[{"__className":"Answer","thanked":"true","answer_id":"5"}] 

我怎么能作出这样的回应:

- answer 
    thanked : true 
    answer_id : 5 

JSON对象没有__className: “答案”(在答复中有类名是否会受到伤害)?

  1. 你禁用布局,viewRenderer等?此外,你应该发送适当的标题。你可以做到这一切在一次使用JSON动作助手:

    $this->_helper->json($answers);

  2. 你可以在Answer提供toArray()方法,它会返回相关属性的数组,然后在你的行动使用它:

    $answers[] = $answer->toArray();

+0

$此 - > _ helper-> JSON($答案);与我合作谢谢 – KJA 2012-04-03 10:58:05