JSON, JavaScript Object Notation, é um formato para transferência de dados, um subconjunto da notação de objeto de JavaScript, mas seu uso não requer JavaScript exclusivamente, podendo ser utilizado para comunicação entre aplicações por exemplo.
Se você acompanhou o artigo sobre serialização de dados no PHP não terá dificuldades para entender como funciona o processo de codificação e decodificação, afinal o que fazemos é serializar informações/dados, mas diferente da serialização apresentada anteriormente, podemos manipular informações codificadas/serializadas em formato JSON no lado do cliente utilizando JavaScript, caso seja necessário.
O formato JSON tem como fator chave de seu uso difundido sua simplicidade, sendo uma ótima alternativa ao XML. Empresas como Google e Yahoo adotaram o formato JSON para ambientes de grande troca de informação, cliente/servidor, evitando processamentos desnecessários, optando pela simplicidade do formato JSON para servir milhões de usuários.
Exemplo de um objeto JSON
O formato JSON é construído através de duas estruturas.
Coleção de pares chave/valor, que na maioria das linguagens é reconhecido como um objeto, struct, dicionário, tabela hash ou array associativo.
Lista ordenada de valores, que na maioria das linguagens é reconhecido como um array, vetor, lista ou sequence.
Estas são estruturas de dados universais, praticamente todas as linguagens de programação modernas suportam essas estruturas de alguma forma. Faz sentido que um formato de dados que é permutável com linguagens de programação utilize essas estruturas.
Confira todos os detalhes de sintaxe do formato JSON
Funções disponíveis no PHP
Função responsável pela codificação de um determinado valor em string, semelhante ao método serialize(), mas retorna uma string contendo a representação json de um determinado valor. Podemos codificar qualquer tipo de valor, exceto resource.
Esta função funciona somente com dados que utilizam codificação UTF-8.
Confira todos os detalhes da função json_encode http://www.php.net/manual/pt_BR/function.json-encode.php
Função responsável pela análise e decodificação de uma string contendo uma representação json, retornando um objeto ou um array associativo. Normalmente será retornado um objeto, mas para retornar um array associativo, informamos o segundo parâmetro, que é opcional, como true.
Esta função irá retorna false se o dado codificado JSON possui mais que 127 elementos.
Confira todos os detalhes da função json_decode
Função responsável por verificar se ocorreu erro ao utilizar as funções json_encode ou json_decode. Essa função retorna um valor inteiro, que representa um determinado erro, estes erros estão disponíveis como constantes, confira os possíveis erros:
Nome | Descrição |
---|---|
JSON_ERROR_NONE | Nenhum erro foi encontrado. |
JSON_ERROR_DEPTH | A profundidade máxima da pilha foi excedida. |
JSON_ERROR_STATE_MISMATCH | Representação JSON inválida ou mal codificada. |
JSON_ERROR_CTRL_CHAR | Erro no caractere de controle, valor mal codificado. |
JSON_ERROR_SYNTAX | Erro na sintaxe do valor informado. |
JSON_ERROR_UTF8 | Erro na codificação do valor informado. |
Confira todos os detalhes da função json_last_error