Você está aqui: PHP ::: Dicas & Truques ::: JSON (JavaScript Object Notation) |
Como usar a função json_decode() para converter um JSON (JavaScript Object Notation) válido em um array ou objeto PHPQuantidade de visualizações: 4505 vezes |
Em dicas anteriores eu mostrei como usar a função json_encode() para converter um array ou objeto PHP em um JSON (JavaScript Object Notation) válido. Nesta dica eu mostro como fazer o contrário, ou seja, converter um JSON (JavaScript Object Notation) válido em um array ou objeto PHP. Para isso usaremos a função json_decode(). Veja sua assinatura:mixed json_decode(string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0]]]) Note que só precisamos fornecer uma string contendo os dados do JSON e a função nos retornará um objeto (por padrão) ou um array. Comece analisando o seguinte trecho de código PHP: $cliente = json_encode(array("cliente" => array("codigo" => "554", "nome" => "Osmar J. Silva"))); Aqui eu usei a função json_encode() para criar um JSON contendo o código e nome de um cliente e guardei o resultado na variável $cliente. Veja agora como usar a função json_decode() para converter o JSON gerado de volta para um objeto PHP: <? $cliente = json_encode(array("cliente" => array("codigo" => "554", "nome" => "Osmar J. Silva"))); $dados = json_decode($cliente); var_dump($dados); ?> Ao executar este código nós teremos o seguinte resultado: object(stdClass)#1 (1) { ["cliente"]=> object( stdClass)#2 (2) { ["codigo"]=> string(3) "554" ["nome"]=> string(14) "Osmar J. Silva" } } Neste trecho de código o resultado foi um objeto PHP. Se quisermos retornar um array, só precisamos fornecer o valor true como segundo argumento para a função json_decode(). Veja: <? $cliente = json_encode(array("cliente" => array("codigo" => "554", "nome" => "Osmar J. Silva"))); $dados = json_decode($cliente, true); var_dump($dados); ?> Agora o resultado será: array(1) { ["cliente"]=> array(2) { ["codigo"]=> string(3) "554" ["nome"]=> string(14) "Osmar J. Silva" } } Para finalizar, veja como extrair as informações contidas no JSON e exibí-las de forma mais legível: <? $cliente = json_encode(array("cliente" => array("codigo" => "554", "nome" => "Osmar J. Silva"))); $dados = json_decode($cliente, true); echo "<b>Código</b>: " . $dados['cliente']['codigo'] . "<br>"; echo "<b>Nome</b>: " . $dados['cliente']['nome']; ?> Ao executar este código nós teremos o seguinte resultado: Código: 554 Nome: Osmar J. Silva |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |