объект Zend JSON - PullRequest
       2

объект Zend JSON

1 голос
/ 12 февраля 2012

Имея этот код:

(...)

<?php foreach($this->albums as $album) : 
$jsonalbum = Zend_Json::encode($album);
?>
<tr>
    <td><?php echo $this->escape($album->tstamp);?></td>
    <td><?php echo $this->escape($album->title);?></td>
    <td><?php echo $this->escape($album->place);?></td>
    <td class="link" onclick="popup(<?php echo $jsonalbum; ?>)">>></td>
    <td>

(...)

$ album содержит и отображает данные, но $ jsonalbum пуст! И я не могу найти, что не так .. любая помощь? спасибо!

1010 * Пабло *

Ответы [ 3 ]

1 голос
/ 12 февраля 2012

Согласно вашему комментарию, атрибуты вашего альбома защищены, и согласно документации Zend_Json, Zend_Json :: encode () может обращаться только к публичным атрибутам.

Если вы кодируете объекты PHP по умолчаниюмеханизм кодирования может получить доступ только к открытым свойствам этих объектов.Когда метод toJson () реализован на объекте для кодирования, Zend_Json вызывает этот метод и ожидает, что объект вернет JSON-представление своего внутреннего состояния.

Документация Zend_Json

Реализуйте метод toJson () в вашем альбоме, чтобы иметь возможность превратить его в json

1 голос
/ 12 февраля 2012

попробуйте привести его к массиву: $jsonalbum = Zend_Json::encode((array) $album);

0 голосов
/ 12 февраля 2012

JSON не допускает ссылки на объекты, поэтому следует соблюдать осторожность, чтобы не кодировать объекты с рекурсивными ссылками. Если у вас есть проблемы с рекурсией, Zend_Json :: encode () и Zend_Json_Encoder :: encode () позволяют дополнительный второй параметр для проверки на рекурсию; если объект сериализован дважды, будет сгенерировано исключение.

может быть в этом вина?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...