Pplware

PHP é à quinta-feira – PHP + JSON

Por Pedro Peixoto para o PPLWARE

No seguimento do artigo publicado no mês passado sobre JSON e no âmbito desta rubrica, vamos hoje aprender como podemos utilizar este formato em PHP. Além disso vamos exemplificar utilizando arrays associativos já explicados numa rubrica anterior.

O JSON está já integrado no PHP 5.2.0 e disponibiliza três funções simples que passaremos a explicar de seguida.

O formato JSON foi originalmente criado por Douglas Crockford e é descrito no RFC 4627. O XML tem vindo a ser trocado pelo JSON, uma vez que o JSON é mais rápido de processar, eficiente, e simples de entender.

Vamos agora ver então algumas funções para o tratamento de informação no formato JSON usando PHP

json_encode

Esta função permite converter um array PHP numa string em formato JSON.

O output é:

Como podemos ver esta função não se portou correctamente com os caracteres com assentos, isto porque ela apenas trabalha com dados em UTF-8.

Existem várias soluções para contornar o problema da codificação, seja através da utilização directa de códigos de caracteres especiais, funções baseadas no str_replace, ou a utilização de funções já modificadas de forma a resolver este problema, entre outras. Por uma questão de simplicidade vamos optar pela primeira abordagem.

Assim, vamos reformular o nosso código:

O resultado agora é o esperado:

De seguida, vamos aumentar um pouco o grau de complexidade do nosso array, acrescentando alguns níveis.

O output é o esperado:

Conseguimos assim efectuar correctamente a conversão de um array PHP para uma string formatada em JSON, esta string pode agora ser usada para diferentes propósitos. No nosso caso vamos guardar os dados num ficheiro JSON. Para isso recorremos à função file_pute_contents. É necessário que o PHP tenha permissões de escrita no ficheiro ou pasta de destino, caso contrário irá ocorrer um erro.

Abrindo o ficheiro “dados.json” é possível conferir que a string JSON foi guardada correctamente.

json_decode

Esta função, como é de esperar, faz o inverso da anterior. Desta forma, recebendo um string em formato JSON retorna um array PHP estruturado em níveis.

Para testar esta função vamos recorrer ao código JSON gerado anteriormente e guardado no ficheiro “dados.json”. Para isso utilizamos a função file_get_contents.

 

O output é o seguinte:

Como podemos observar, o output não foi exactamente o esperado, isto porque para fazer a descodificação em arrays associativos temos que activar essa flag. Além disso, podemos melhorar a forma de apresentação colocando o nosso código entre a tag “pre” (<pre></pre>).

Vamos então reformular o código.

E o output é finalmente apresentado correctamente:

Poderíamos ter usado a variável $contactos para outro fim que não a simples representação.

 

json_last_error

Esta função não recebe parâmetros e limita-se a retornar o último erro ocorrido.

Conclusão

As funções nativas JSON_enconde e JSON_decode permitem-nos facilmente utilizar o formato JSON para armazenamento, tratamento ou conversão de dados oferecendo as vantagens já conhecidas deste formato. A partir destas podem ser desenvolvidas funções mais complexas para um tratamento mais correcto e eficaz dos dados. Apesar de simples, estes métodos são suficientes para permitirem a utilização de diversas API’s e recursos FLASH que recorrem a este formado para leitura e escrita de dados.

O que achou deste artigo? Demasiado simples? Está adequado aos seus conhecimentos? Preferia artigos mais básicos e rápidos? Não sabe por onde começar? Deixe a sua opinião para adequar os artigos futuros.

Exit mobile version