Alguns dias atrás, recebi um e-mail de um leitor que acabou de iniciar em um novo emprego e seus supervisores lançaram a seguinte necessidade:
Na nossa empresa temos uma base de dados que ao fazer a consulta X, irá vai te retornar um JSON, ou seja, um valor que por sua notação é denominada JSON.
JSON quer dizer JavaScript Objection Notation, nada mais é do que um conjunto de chaves e valores, que podem ser interpretadas por qualquer linguagem. Toda essa estrutura, foi criada apartir do padrão ECMA-262 que por sua vez possui convenções muito semelhante às linguagens como C, C#, C++, Java, JavaScript, Perl, Python e várias outras. Com estas características o JSON se torna o formato ideal para troca de informações independente da linguagem.
Um estrutura JSON pode ser identificada por duas estruturas de dados:
Uma coleção de pares nome/valor. Em várias linguagens, isto é caracterizado como um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas.
Ex:
[javascript]
var MeuBlog = {
nome:"Igor Escobar // blog",
ano:2008,
assunto:"Tecnologia",
getTitle:function(){
return (‘TituloBlog:’ + nome);
}
}
[/javascript]
Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.
Ex:
[javascript]
["Igor Escobar // Blog", 2008, 0]
[/javascript]
Viu só? é super simples se trabalhar com o JSON. Não se preocupe ao aplicar estas regras na prática, a teoria é valida para você entender como o JSON gera estes dados, no seu caso (e de muitos), você precisa decodificar um Array ou um Objecto JSON para a sua linguagem nativa.
Vou utilizar a linguagem PHP, como exemplo, para você entender como funciona e aonde entra o JSON nesta história toda.
- Primeiro o PHP recebe os dados e envia estes dados para o JSON seja ele um Array ou um Objeto.
- Depois o JSON codifica os dados e retorna este valor (uma inofenciva string) para uma variavel PHP que por sua vez é responsável por enviar esta váriavel para o banco com os dados codificados.
JSON na Prática
Estou disponibilizando aqui o JSON em:
Mais caso você precise da implementação JSON em outras linguagens basta ir até o site do projeto.
Na prática você só vai utilizar duas funções do JSON:
[javascript]
$JSON = new JSON();
// JSON – Encode
$dbValue = $JSON->;encode($objetoPHP); // Codifica um objeto PHP -> JSON
// JSON – Decode
$dbValue = $JSON->decode($dbObject->campoComJson); // Decodifica um objeto JSON -> PHP Object
[/javascript]
E é exatamente isso que no caso do nosso “amigo do e-mail” precisa fazer. Você precisa receber este valor na estrutura de dados JSON e decodifica-lo para que sua linguagem nativa o entenda e interprete.
Possível problema
Se você estiver utilizando JSON -> JavaScript e este array/objeto JSON retornar uma estring é possivel que você tenha problemas com caracteres especiais e na hora de exibir apareça uns caracteres como (+%…etc).
Para corrigir este problema eu implemento em minhas funções javascript a seguinte solução:
[javascript]
function urlencode(str) {
str = escape(str);
str = str.replace(‘+’, ‘%2B’);
str = str.replace(‘%20’, ‘+’);
str = str.replace(‘*’, ‘%2A’);
str = str.replace(‘/’, ‘%2F’);
str = str.replace(‘@’, ‘%40’);
return str;
}
function urldecode(str) {
str = str.replace(/\+/g, ‘ ‘);
str = unescape(str);
return str;
}
[/javascript]
E é isso caro “amigo do e-mail”, conte-nos depois como foi a sua experiência iniciando com o uso do JSON e espero que este ajude todas as outras pessoas que forem iniciar com o mesmo.
Vale lembrar, eu só escrevi este texto por que o nosso amigo aparentemente precisava MUITO, pela iniciação no novo trabalho e claro o seu problema com certeza bate com o de muitas outras pessoas, principalmente, com o objetivo deste blog que é em primeiro lugar, reunir soluções de desenvolvimento em um único lugar.
Nota: Apartir do PHP 5.2 o JSON já se encontra nativo na linguagem através dos métodos json_encode(); e json_decode();
Espero ter contribuído!
[]’s
Sei q já é 2012 e o post é de 2009 mas ajudou muito brother, muito obrigado, tava meio enrolando com o tal de “JSON” vlw msm, um abraço
LikeLike
Fico feliz que tenha te ajudado 🙂
LikeLike
muito bom o post, estou começando a ver sobre JSON e ele me ajudou muito a entender a ideia 😀
obrigado
LikeLike
Obrigado mesmo…. foi de grande utilidade o post…
vlw
LikeLike
E aqui é 2017 e ainda ajudou.
Obrigado
LikeLike
2018 e aqui estamos… me ajudando muito !
LikeLike