Quando codificamos objetos PHP como JSON, todas as propriedades públicas desse objeto estarão codificadas em um objeto JSON.
            JSON não permite referências de objeto, por isso deve-se tomar
            cuidado para não codificar objetos com referências recursivas. Se você tiver problemas
            com a recursividade, Zend_Json::encode() e
            Zend_Json_Encoder::encode() permitem um segundo parâmetro
            opcional para verificar a recursividade; se um objeto for serializado duplamente,
            uma exceção será lançada.
        
Descodificar objetos JSON traz uma ligeira dificuldade, entretanto, desde que os objetos do JavaScript correspondam o mais próximo de uma matriz associativa do PHP. Alguns sugerem que um identificador da classe deve ser passado, e um exemplo do objeto dessa classe deve ser criado e populado com os pares chave/valor do objeto JSON; outros pensam que isto poderia gerar um risco substancial da segurança.
            Por padrão, Zend_Json irá descodificar objetos
            JSON como matriz associativas. Entretanto, se você deseja que o
            retorne um objeto, você pode especificar isto:
        
// Descodifique objetos JSON como objetos PHP $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
            Todos os objetos descodificados assim são retornados como objetos de
            StdClass com as propriedades que correspondem aos pares
            chave/valor na notação de JSON.
        
            A recomendação do Zend Framework é que o desenvolvedor deve decidir-se como
            descodificar objetos JSON. Se um objeto de um tipo especificado for
            criado, pode ser criado no código do desenvolvedor e ser populado com os valores
            descodificados usando Zend_Json.
        
            Se você estiver codificando objetos PHP por padrão, o mecanismo de
            codificação só poderá acessar as propriedades públicas desses objetos. Quando o método
            toJson() é implementado em um objeto para codificar,
            Zend_Json chama esse método e espera que o objeto retorne uma
            representação JSON de seu estado interno.
        
            Zend_Json tem dois modos diferentes, dependendo se ext/json
            está habilitado em sua instalação do PHP ou não. Se estiver
            instalado por padrão, json_encode() e
            json_decode() são utilizados para a codificação e
            descodificação JSON. Se não estiver instalado, uma implementação do
            Zend Framework no código PHP é usada para a codificação e
            descodificação. Este último é consideravelmente mais lento do que usando a extensão
            do PHP, mas comporta-se exatamente da mesma forma.
        
Entretanto, você talvez queira usar o codificador/descodificador interno mesmo tendo o ext/json instalado. Você pode conseguir isso chamando:
Zend_Json::$useBuiltinEncoderDecoder = true:
            Javascript faz uso pesado de funções de callback anônimas, que podem ser guardadas
            dentro de variáveis de objeto JSON. Mesmo assim elas só
            funcionam se não forem devolvidas dentro aspas duplas, que
            Zend_Json naturalmente faz. Com o suporte à Expressão no
            Zend_Json, você pode codificar objetos JSON
            com callbacks de javascript válidos. Isso funciona tanto para
            json_encode() quanto para o codificador interno.
        
            Um callback javascript é representado usando o objeto
            Zend_Json_Expr. Ela implementa o padrão value object e é
            imutável. Você pode definir a expressão javascript como o primeiro argumento do
            construtor. Por padrão Zend_Json::encode não codifica callbacks
            de javascript, você deverá passar a opção enableJsonExprFinder e
            defini-la para TRUE para a função
            encode(). Se ativado, o suporte à expressão funcionará para
            todas as expressões aninhadas em estruturas de grande porte. Um exemplo de uso seria
            parecido com:
        
$data = array(
    'onClick' => new Zend_Json_Expr('function() {'
              . 'alert("I am a valid javascript callback '
              . 'created by Zend_Json"); }'),
    'other' => 'no expression',
);
$jsonObjectWithExpression = Zend_Json::encode(
    $data,
    false,
    array('enableJsonExprFinder' => true)
);