Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Javascript

Feed da seção Javascript

Newsletter de Javascript


Terça-feira, 25/03/2008 - 09:00 - Por Igor Escobar
Seções relacionadas:

Iniciando com o JSON - JavaScript Objection Notation

JSON quer dizer JavaScript Objection Notation, e 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:


1.	var MeuBlog = {
2.	nome:"Igor Escobar // blog",
3.	ano:2008,
4.	assunto:"Tecnologia",
5.	getTitle:function(){
6.	return ('TituloBlog:' + nome);
7.	}
8.	} 

Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.

Ex:


1.	["Igor Escobar // Blog", 2008, 0] 

Viu só? É muito simples 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, e 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.

  • Inicialmente o PHP recebe os dados e envia-os para o JSON, seja ele um Array ou um Objeto.
  • Logo depois o JSON codifica os dados e retorna este valor (uma inofenciva string) para uma variável 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:

Mas 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:


1.	$JSON = new JSON();
2.	// JSON - Encode
3.	$dbValue = $JSON->encode($objetoPHP); // Codifica um objeto PHP -> JSON 

1.	$JSON = new JSON();
2.	// JSON - Decode
3.	$dbValue = $JSON->decode($dbObject->campoComJson); // Codifica um objeto JSON -> PHP Object 

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 decodificá-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 string, é possivel que você tenha problemas com caracteres especiais e, na hora de exibir, apareça alguns caracteres como (+%...etc).

Para corrigir este problema, eu implemento em minhas funções javascript a seguinte solução:

1.	function urlencode(str) {
2.	str = escape(str);
3.	str = str.replace('+', '%2B');
4.	str = str.replace('%20', '+');
5.	str = str.replace('*', '%2A');
6.	str = str.replace('/', '%2F');
7.	str = str.replace('@', '%40');
8.	return str;
9.	}
10.	 
11.	function urldecode(str) {
12.	str = str.replace('+', ' ');
13.	str = unescape(str);
14.	return str;
15.	} 

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.

Espero ter contribuído! Abraços!

Todos os artigos de Igor Escobar

6 comentários publicados

  • 1. JSON built-in no PHP

    Quarta-feira, 26/03/2008, por Andre Metzen

    A partir da versão 5.2 do PHP já existem as funções json_encode() e json_decode() nativamente. Muito util e mais eficiente do que bibliotecas externas. ;)

    Responder comentário
  • 2. Sim, mas..

    Quarta-feira, 26/03/2008, por Igor Escobar

    Sim sim, é bem útil, mais tem casos que queremos fazer adaptações, tem casos e casos, é questão de estratégia.

    Responder comentário
  • 3. Um problema. Qual a solução?

    Quinta-feira, 03/04/2008, por Vinicius Alegreti Meza

    Olá Igor.
    Parabéns pelo seu post. Acredito que este formato será mais amplamente utilizado a partir da apresentação dos conceitos que seu artigo ofereceu. Entretanto, eu tenho algumas dúvidas. Quando se utiliza outros caracteres latinos, como as letras acentuadas, como proceder? Eu procurei utilizar a função htmlentities antes de converter meus resultados com json_encode, mas ao passar para a página html, as entidades html não foram convertidas devidamente. O que foi, por exemplo, á, continuou como á . Você já passou por esta experiência? Como a resolveu? Acredito que muitos colegas gostariam de ter uma explicação para resolver problemas semelhantes. Novamente, parabéns pela explicação da notação.

    Responder comentário
  • 4. Hun

    Quinta-feira, 03/04/2008, por Igor Escobar

    Muito obrigado pelos elogios Vinicius.

    Para resolver este problema, recomendo que converta os caracteres ANTES de condifica-los para notação do JSON.

    Você pode usar a função utf8_encode ou a utf8_decode, ambas nativas do PHP.

    Grande Abraço.

    Responder comentário
  • 5. Agora SIM.

    Sexta-feira, 04/04/2008, por Vinicius Alegreti Meza

    Igor,
    Corretíssimo. A função funcionou como uma luva. Fiz o teste e me parece que o javascript interpreta adequadamente UTF8. Ou seja, ao converter para este formato, automaticamente a acentuação é levada em conta e tudo funciona como o esperado. Muito obrigado pela dica. Espero ver mais artigos sobre JSON.
    Grande abraço.

    Responder comentário
  • 6. o/

    Sexta-feira, 04/04/2008, por Igor Escobar

    Imagina Vinicios!
    Eu é que agradeço a sua participação!

    Fique ligado ;)
    Se você assinar os feeds do meu blog você lerá este e vários outros artigos que lanço frequentemente.

    Abração

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Igor Escobar é Formado em Desenvolvimento de Sistemas para Internet pelo Instituto Brasileiro de Técnologia Avançada. Desenvolvedor web da Visie, escreve em veículos de tecnologia como o Web Insider e mantém um blog (www.igorescobar.com).


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.