Zend Json_Encode和.getJson成功没被调用?

时间:2011-09-02 18:07:19

标签: jquery zend-framework

我有一个脚本,我用它来使用Zend Framework从PHP返回一些JSON。

这就是我得到的:[] {“Test”:“Tester”}但是jQuery中的成功函数没有被调用。 json不应该是[{“Test”:“Tester”}]吗?

在我的控制器中我这样做了:

echo Zend_Json::encode(array("Test" => "Tester"));

客户Js:

  $.getJSON("/entry/get-projects",
    {
        "id": 1,
        "format": "json"
    },
    function(data, textStatus, jqXHR) {

        alert("win");
    }
    );

2 个答案:

答案 0 :(得分:1)

在处理json调用的操作中

$callback = $this->getRequest()->getParam('callback');
echo $callback . '(' . Zend_Json::encode(array('key' => 'value')) . ')';

在你的JS中

var map = {
    'key1'  : val1,
    'key2'  : val2
};

$.post('/some/ajax-action/', map, some_callback_function, 'json');

如果做不到这一点,你总是可以尝试:

http://php.net/manual/en/function.json-encode.php
echo json_encode(array('key' => 'value'));

答案 1 :(得分:0)

我用它来工作 这里提到的$this->_helper->json();http://www.stoimen.com/blog/2010/08/13/returning-json-in-a-zend-controllers-action/

不确定是否有更好的方法。例如:Propel有一个漂亮的toJSON方法,可以从查询结果中取回json代码。使用propel将其转换为数组会很糟糕,然后必须使用Zend将其转换为JSON。