JSON кодировать массив возвращает пустой объект JSON, как? - PullRequest
0 голосов
/ 20 марта 2012

Я замечаю ошибку, когда пытаюсь вернуть json из fetchAll.

в контроллере у меня есть fetchAction

$result = $model->fetchAll();
echo Zend_Json::encode($result);
exit();

в файле .js у меня есть вызов ajax:

$.ajax({  
    type: "GET",
    url: "/module/index/fetch",
    dataType: "json",
    processData: false,
    success: function(data) {   
       console.log(data);
       $.each(data, function(index, obj){
          // console.log(obj);
       });
    }
});

если я сделаю print_r($result);, я получу:

Array
(
    [0] => Module_Model_Module Object
        (
            [_message:protected] => test
            [_created:protected] => 1332188757
            [_dependent_table:protected] => 
        )

    [1] => Module_Model_Module Object
        (
            [_message:protected] => 123123
            [_created:protected] => 1332194812
            [_dependent_table:protected] => 
        )

)

но console.log(data); возвращает 2 пустых объекта json: [{},{}].

есть идеи, почему я получаю JSON пустым обратно?

1 Ответ

0 голосов
/ 20 марта 2012

я предполагаю, что Zend_Json не может преобразовать объекты Module_Model_Module в массивы, а затем в JSON, вы можете попробовать вызвать toArray для объектов и посмотреть, сможет ли тогда Zend_Json правильно их кодировать

...