Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Manoel Bruno

[Resolvido] Gerar JSON com cakePHP

Recommended Posts

Boa noite estou iniciando com o cake e JSON gostaria de saber como posso gerar o resultado de uma consulta em formato JSON com o cake php para alimentar uma grid do ExtJS?

 

atenciosamente,

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que utilizar a função json_encode():

echo json_encode($this->Post->find('all'));
Agora... você precisa de algum tipo de formato especifico para o array de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado,

 

Sim mas os dados vem nesse formato:

 

Ex:

 

[

{"Pessoa":{"id":"4","cnpjcpf":"361.444.218-99","nome":"bruno","email":"jjj@jjj.com"}},

{"Pessoa":{"id":"5","cnpjcpf":"379.093.828-98","nome":"jose","email":"jjj@jjj.com"}}

]

 

o corretor para o ExtJS seria:

 

{Pessoa: [

{"id":"4","cnpjcpf":"361.444.218-99","nome":"bruno","email":"jjj@jjj.com"}

, {"id":"5","cnpjcpf":"379.093.828-98","nome":"jose","email":"jjj@jjj.com"}

]

}

 

como posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, converti para array e.

Este é o formato que o cake gera (json_encode):

Array
(
    [0] => stdClass Object
        (
            [Pessoa] => stdClass Object
                (
                    [id] => 4
                    [cnpjcpf] => 361.444.218-99
                    [nome] => bruno
                    [email] => jjj@jjj.com
                )

        )

    [1] => stdClass Object
        (
            [Pessoa] => stdClass Object
                (
                    [id] => 5
                    [cnpjcpf] => 379.093.828-98
                    [nome] => jose
                    [email] => jjj@jjj.com
                )

        )

)

E oque você precisa:

stdClass Object
(
    [Pessoa] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 4
                    [cnpjcpf] => 361.444.218-99
                    [nome] => bruno
                    [email] => jjj@jjj.com
                )

            [1] => stdClass Object
                (
                    [id] => 5
                    [cnpjcpf] => 379.093.828-98
                    [nome] => jose
                    [email] => jjj@jjj.com
                )

        )

)

Algo que podera ajudar você a "converter" este array é: http://book.cakephp.org/view/671/extract

Ou, você pode criar um novo apenas fazendo foreaches;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo,

 

Muito obrigado agora entendi, vou fazer alguns testes remontando o array da forma que eu presciso e aviso qualquer coisa.

 

até mais.

 

Realizei alguns testes e não consegui fazer a conversão o JSON retorna como NULL como posso fazer, será que tem algum tutorial, exemplo?

 

atenciosamente,

 

obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

JSON retorna como NULL

Como assim? Mostre o que você já fez.

 

 

Bom dia,

 

Obrigado pelas informações, o problema era com o view JSON que estava gerando o resultado pois a mesma não executava a função json_encode($result),

mas sim uma outra função criada manualmente após removida essa função e colocado a json_encode do php funcionou perfeitamente e o grid ExtJS funcionou corretamente.

 

o código ficou assim:

 

$pesssoas = $this->Pessoa->findAll();
$pess     = array();
foreach($pessoas as $pessoa){
   $pess['Pessoa'][] = $pessoa['Pessoa'];
}

$this->view = 'Json';
$this->set('json', $pess);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.