Você está na página 1de 3

________________________________________________________________________________________

Administração Central
Cetec Capacitações

5. Criando JSON com Banco de Dados

Nesse exemplo vamos criar um documento JSON a partir de um banco de dados, verifique a
estrutura da tabela “contato” na figura 01, é a mesma tabela utilizada no exemplo com XML, para
que possam fazer um comparativo entre os modelos de dados.

Figura 01 – localhost → Banco: banco → Tabela: contato

A variável $jsonString é do tipo acumuladora e receberá todas as informações que compõe o


documento JSON, nesse ponto é indicado o tipo do documento e os rótulos do documento e na
instrução while(), será adicionado os rótulos “pelido”, “nome” e “foneddd”.

$linha = 0;
$jsonString = '[';

while($dados=mysqli_fetch_array($info))
{
if($linha<>0){$jsonString .= ",";}
$jsonString .= '{';
$jsonString .= '"apelido":"'.utf8_encode($dados['apelido']).'",';
$jsonString .= '"nome":"'.utf8_encode($dados['nome']).'",';
$jsonString .= '"foneddd":"'.$dados['foneddd'].'"';
$jsonString .= '}';
$linha++;
}
$jsonString .= ']';

________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300
________________________________________________________________________________________

Administração Central
Cetec Capacitações

A variável $linha é apenas um recurso para garantir que o sinal de “,” separe os objetos. Como
resultado teremos a string de dados no seguinte formato:

[ {"apelido":"daterra","nome":"AgrÃcola Beterraba Areia Leão","foneddd":"021-9874-


563"},{"apelido":"checy","nome":"Chevrolet da Silva Ford","foneddd":"011-9874-
985"},{"apelido":"rocha","nome":"Liberdade Igualdade Fraternidade Nova York
Rocha","foneddd":"019-9856-365"},{"apelido":"popi","nome":"Pália Pélia Pólia Púlia dos
Guimarães Peixoto","foneddd":"014-9874-589"},{"apelido":"verdinho ","nome":"Márciano
Verdinho das Antenas Longas","foneddd":"011-9856-365"},{"apelido":"doano","nome":"Janeiro
Fevereiro de Março Abril","foneddd":"011-9854-785"},{"apelido":"casamenteiro
","nome":"Himeneu Casamenteiro das Dores Conjugais","foneddd":"033-9632-
147"},{"apelido":"popita","nome":"Acheropita Papazone","foneddd":"055-9512-357"} ]

Na sequência, o código para visualizar a estrutura.

$json = json_decode($jsonString);

foreach($json as $contato){
echo "<strong>Apelido:</strong> ".utf8_decode($contato->apelido)."<br />";
echo "<strong>Nome Completo:</strong> ".utf8_decode($contato -> nome)."<br />";
echo "<strong>(ddd) Telefone:</strong> ".utf8_decode($contato -> foneddd)."<br />";

echo "<br />";


}

Documento: exemplo01.php

No exemplo anterior a saída ocorreu no formato string, agora vamos gerar um arquivo JSON.

$file = fopen('telefone.json, 'w+');


fwrite($file, $ jsonString);
fclose($file);

Documento: exemplo02.php

________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300
________________________________________________________________________________________

Administração Central
Cetec Capacitações

A leitura do documento, será feita do mesmo formato apresentado anteriormente.

$arquivo = file_get_contents('telefone.json');

$json = json_decode($arquivo);

foreach($json as $contato){
echo "<strong>Apelido:</strong> ".utf8_decode($contato->apelido)."<br />";
echo "<strong>Nome Completo:</strong> ".utf8_decode($contato -> nome)."<br />";
echo "<strong>(ddd) Telefone:</strong> ".utf8_decode($contato -> foneddd)."<br />";

echo "<br />";


}

Documento: lendojson_exemplo02.php

________________________________________________________________________________________
www.centropaulasouza.sp.gov.br
Rua dos Andradas, 140 • Santa Ifigênia • 01208-000 • São Paulo • SP • Tel.: (11) 3324.3300

Você também pode gostar