Diário Code - Uma xícara de café e um bule em cima de uma mesa.

Diário Code

Aprenda JavaScript e PHP

Como Ler Arquivos JSON em PHP

Um adesivo do elefante que é logotipo do PHP sendo segurando por dedos femininos. Ao lado, o texto: Como ler arquivos JSON usando PHP

O PHP evoluiu muito nos últimos 20 anos, até porque as exigências para programação Web também evoluíram. Uma delas foi a criação do formato JSON. Com isso, foi necessário criar funções específicas para lidar com esse novo tipo de dados.

Se você não sabe o que é JSON, convido a ler esse outro artigo aqui do site antes de continuar: O que você precisa saber sobre JSON

Neste artigo, você vai aprender a ler dados e arquivos JSON usando PHP. Em artigos futuros, você aprenderá outras técnicas para trabalhar com JSON através do PHP. Vamos lá!

Conheça a função json_decode ( )

A função json_decode ( ) é nativa do PHP e você pode usá-la para ler dados do tipo JSON. Essa função aceita até 4 argumentos. A sintaxe dela é a seguinte:

json_decode ( string [dados_json] , bool [associativa] , int [profundidade (max=512) ] , int [flags] )

dados_json. Os dados JSON a serem decodificados.

associativa. Use true para retornar uma matriz associativa e false para retornar string.

profundidade. A quantidade de aninhamentos que a função deve ler. No caso, 1 refere-se apenas às chaves raiz do JSON.

flags. Aceita uma das seguintes constantes: JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY ou JSON_THROW_ON_ERROR. Cada uma das opções resultará num JSON com caracteres codificados de maneira diferente. É possível corrigir erros de decodificação de caracteres Unicode, por exemplo.

Veja o JSON abaixo, que também utilizamos no artigo O que você precisa saber sobre JSON:

produto.json:

{
 "title" : "Camiseta Hering Masculina",
 "color" : "white",
 "size" : "M",
 "image" : "produtos/camiseta-hering-basica-masculina-5-pecas/14/9NC-0384-014/9NC-0384-014_zoom1.jpg"
 "gender" : "male",
 "price" :
  {
   "currency" : "R$",
   "value" : 15999
   }
 "lenght" :
  {
   "unit" : "cm",
   "value" : 150
  }
 "description" : "Aposte no básico com o Kit Camiseta Masculina Hering, perfeito para todos os momentos.",
 "url" : "camiseta-hering-basica-masculina-5-pecas-branco-9NC-0384-014
 }

Suponhamos que você precise ler esse arquivo para montar uma página para esse produto. Para isso, você precisa lembrar que esse JSON é apenas string para o PHP. No entanto, trabalhar com string não é a maneira mais recomendada, já que você precisaria criar do zero uma função para ler esse tipo de dados. Então, o que você precisa é converter essa string num formato de dados mais fácil de ser trabalhado.

Esse formato é Array. E como fazer isso? Primeiro, você deve obter o conteúdo do arquivo (string). Depois, usando a função json_decode ( ), você irá transformar essa string numa matriz associativa, cujos dados poderão ser acessados mediante chaves e valores assim como no JSON. Veja agora como fazer isso:

$conteudo_string = file_get_contents ( "camiseta.json" ) ;
$camiseta = json_decode ( $conteudo , true ) ;

echo "Título do produto: " . $camiseta [ "title" ] . "
"; echo "Cor do produto: " . $camiseta [ "color" ] . "
" ; echo "Tamanho do produto: " . $camiseta [ "size" ] . "
" ; // Saída: // ------------- // Título do produto: Camiseta Hering Masculina // Cor do produto: white // Tamanho do produto: M

Nesse exemplo, $conteudo_string obteve o conteúdo do arquivo em texto puro. Depois, esse conteúdo foi usado em json_decode( ) para converter os dados para uma matriz associativa. Com os dados em mãos, é possível exibir qualquer valor do JSON usando o nome da chave na matriz.

É assim que se faz a leitura de um JSON no PHP.

Na prática do dia-a-dia, raramente se tem um arquivo no formato JSON dessa forma. Na maioria das vezes, você vai obter dados JSON, e não arquivos. Mas isso não importa, desde que você consiga armazenar a string do JSON numa variável para depois inseri-la na função json_decode ( ).

Conclusão

JSON é o formato de dados mais utilizado na Web depois do HTML. Se você vai trabalhar com PHP, vai precisar saber decodificá-lo. O exemplo acima demonstrou quse tudo que você vai precisar para o seu projeto.

Ainda vamos falar sobre tratamento de erros, salvar JSON, matrizes associativas e muitos outros elementos que aparecerão para você nos seus futuros projetos. Continue me acompanhando e você aprenderá tudo que precisa! d:

Aprenda mais com outros artigos relacionados