Json (JavaScript Object Notation) – O sucessor do XML
JSON – simples para o utilizador ler e escrever…. fácil para as máquinas gerarem e processarem!
Para quem anda pela área da programação, certamente que já teve a necessidade de trocar informação entre uma aplicação servidor e uma aplicação cliente. Numa primeira abordagem, a escolha do formato de dados para intercâmbio de informação entre servidor e cliente é o XML.
No entanto, o formato JSON tem vindo a ganhar popularidade e é actualmente o formato padrão para muitos serviços disponíveis na Internet, como é o caso do Twitter ou Yahoo.
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.
O formato JSON assenta basicamente em duas estruturas:
- Uma colecção de pares: chave/valor – Em algumas linguagem de programação tal estrutura é entendida como um objecto, lista, matriz, etc;
- Uma lista ordenada de valores - Nas linguagens de programação é caracterizado como um array, vector, lista, etc;
Este tipo de estruturas de dados são transversais a quase todo o tipo de linguagens de programação modernas, o que faz do JSON é excelente escolha no que se refere ao formato para intercâmbio de informação.
Representação das estruturas no formato JSON:
Objecto
Um objecto é um conjunto desordenado de pares chave/valor. No formato JSON, um objecto começa por { (chaveta esquerda) e termina em } (chaveta direita). Cada nome é seguido de : (dois pontos) e os pares chave/valor são separados por , (vírgula).
{ color: "azul", site: "pplware.com”, value: "#f00" } |
Array
Um array é um conjunto de valores ordenados. Um array de valores começa por [ (parênteses recto esquerdo) e termina com ] parênteses recto direito). Os valores encontram-se separados , (vírgula).
[ 100, 500, 300, 200, 400 ]
Value
Um value (valor) pode ser uma String (dentro de aspas), um número, ou verdadeiro, false ou null
String
Uma string é uma sequência de zero ou mais caracteres unicode. A sequência é bastante semelhante à utilizada em linguagens de programação como C ou string JAVA.
Number
Um número é muito semelhante ao usado nas linguagens de programação C ou Java, excepto os formatos octal e hexadecimal uma vez que não são usados.
Um exemplo do formato JSON
{"menu": { "id": "pplware", "value": "100", "popup": { "menuitem": [ {"value": "Linux", "Mac": "Windows"}, {"value": "Android", "iOS": "Windows"}, {"value": "redes", "apps": "tutoriais"} ] } }} |
Em Resumo…
O formato JSON promete, uma vez que possui características que o permitem destacar-se do formato XML. É comum ver actualmente aplicações que usam os dois formatos, nos entanto nota-se que o JSON está a crescer e que as linguagem de programação cada vez mais disponibilizam suporte para este formato. Vamos ver o que nos reserva o futuro.
Para finalizar gostaríamos apenas de saber se já conhecia o JSON?
Artigos relacionados
Homepage: JSON
Este artigo tem mais de um ano
Já gerei um JSON de um XML e a ler o JSON lê muito mais rápido.
JSON – 0,5 seg
XML – 4 seg
Só é a pena a aplicação que estou a usar para desenvolver (Flash Builder 4) ainda não ter suporte oficial para JSON. Já existe um código que faz isso mas comigo não funciona …
Pois realmente a diferença é muita. Para dispositivos móveis tudo conta e na altura de escolher a tecnologia/formato é importante ter conhecimento do que anda por aí.
qual é lib que tas usar?
o json a muito tempo que é usado no as2 e no as3
Utilizo este.
https://github.com/mikechambers/as3corelib
e utilizo este exemplo
https://github.com/mikechambers/as3corelib/blob/master/examples/JSONExample/JSONExample.mxml
Mas comigo não dá. Dá “null”
http://code.google.com/p/vegas/
funciona uma maravilha e tens uma fabrica de ioc com json 😉
Obrigado!!!
Vou experimentar. 🙂
Já utilizo há algum tempo, mas o xml continuará a ser usado, p.e webservices e afins.
Bom artigo, não sabia que o JSON podia ter “colecções”.
Sim, já conhecia o JSON e até lhe achei piada. Como dito no artigo, é utilizado no twitter e foi ai a primeira vez que aprendi o que era JSON, ao fazer um cliente. A última vez que o utilizei foi a usar a API do Google Translate, já que as API’s do Google também usam o JSON. Acho que vi-o também no Grooveshark, e se assim for, a ver se faço um cliente.
Eu andei dois dias a partir a cabeça para fazer um parser para JSON. Custou !!!! mas agora, vejo que a velocidade de processamento do output é algo fantástico !!!
hehe. Também me vi negro a primeira vez. Mas que compensa, compensa.
No javascript, se utilizares jquery, já tens um parser feito. jQuery.parseJSON(json)
Usei JSONTokener em Java para Android! Simples e fantástico.
Se os dados foram muitos, então Goole GSON: http://code.google.com/p/google-gson/
Ou podes fazer:
var objJsonParsado = eval(‘(‘ + stringJson + ‘)’);
eval = evil!
Funciona, mas é lento.
Excelente artigo sobre uma notação muito útil simples e eficiente. Já conheço o JSON pois já o utilizei em diversas aplicações web nomeadamente ASP.NET MVC que oferece um excelente suporte a esta notação. Para quem não conhece recomendo explorarem experimentarem.
Formatem bem o JSON por amor de deus:
{
“menu”:{
“id”:”pplware”,
“value”:”100″,
“popup”:{
“menuitem”:[
{
“value”:”Linux”,
“Mac”:”Windows”
},
{
“value”:”Android”,
“iOS”:”Windows”
},
{
“value”:”redes”,
“apps”:”tutoriais”
}
]
}
}
}
Ahm lol é melhor calar-me 🙁
A representação não é algo importante :). O importante é que esteja bem definido com as chavetas e afins…até podes meter tudo na mesma linha.
Um utilitário:
http://json.parser.online.fr/
lol 😀 traído pelo wordpress!
indents ai também não te faziam mal nenhum! 🙂
Eu formatei o JSON, mas estes comentarios perdem a formatação toda enfim, na vale o esforço.
Indentar e não formatar. Penso eu que é mais correcto 🙂
Para mim o melhor no json é o parsing simples quer em JS quer em PHP.
No entanto a estrutura XML é mais fácil de ser lida e desenhada.
Mas pah uso mto JSON no meu trabalho e realmente e mto mais simples de perceber e trabalhar do que o XML, no entanto não considero um substituto ao XML.
Não conhecia, mas parece realmente interessante. Da próxima vez que sentir necessidade de algo do
genero ei de experimentar.
Bom post!
Cum
double post, srry. alguem que apague pfv
O titulo é algo sensacionalista, devia ter um ponto de interrogação no final, mas enfim.
Mais fácil de ler? Não sei onde está a dificuldade em ler XML, embora como trabalho à muito tempo com XML posso estar a ser tendencioso. Substituto? Duvido muito até porque o XML já está muito batido e pelo que me parece é mais poderoso que o JSON.
Mas enfim, como tudo na vida logo se verá.
Cumps
Realmente o título poderia ser feito em forma de questão já que na minha opinião cada um tem o seu espaço.
@Luis e @MightyOne
Sim, cada um tem o seu espaço. No entanto como fazem os dois o mesmo mas o JSON leva vantagem no processo de processamento….penso que o JSON é um legitimo sucessor. É inevitável comparar o XML ao JSON…
Uns gráficos interessante:
http://www.cpanel.net/blog/integration/assets_c/2011/02/Blog_charts-598.html
@MightyOne
A questão não é tu leres um xml…é a máquina. E segundo muito artigos cientifico que ja li, é bem mais rápido ler um formato em JSON que XML. Aqui está a (grande) diferença
Pedro, como deves saber quando surgiu o XML também foi muito debatido a questão da performance. A questão do XML é a standardização.
Andou-se a bater por esta bandeira, para agora deitar-se tudo por terra?
Ainda por cima é estranho. Porque em outras áreas a performance sempre foi mais critica e aos poucos o XML foi entrando, apesar de ainda não totalmente. E agora vem a área que na altura fomentou o XML dizer que preferem um formato especifico para uma área especifica
Ja conhecia 🙂
Um bom artigo, para dar a conhecer o JSON a quem ainda não conhece.
Contudo (e peço desculpa se li demasiado na diagonal), as imagens utilizadas parecem-me vagamente familiares 😉
Se estiver enganado corrijam-me, mas não seria porreiro adicionar uma referência ao site http://www.json.org ?
Sim, as imagens são do próprio site do projecto….não fui eu que as inventei 🙂
Já coloco o site em referencia. Thanks (lapso meu)
Só o facto do JSON ter menos overhead em relação ao XML já é motivo suficiente para ser preferido em relação ao XML em aplicações web.
json deriva do jfather 😛
realmente é uma excelente alternativa ao xml… ver se começo a aplica-lo mais vezes nas aplicaçoes que desenvolvo
Trabalho com JSON há 2 anos.
Não consigo mais trabalhar com XML.
eu ainda trabalho com bits
É a primeira vez que ouço falar desta aplicação, sinceramente.
E para dizer a verdade, cativou-me!
Vou começar a usar isto em futuros projectos, visto que melhora o desempenho!
Uma pergunta simples, o XML costuma dar problemas, especialmente usado em websites, a nível de formatação de texto. Costuma dar problemas com ç e acentos e etc… Com este formato, haverá esse tipo de problemas ou também tem que ser definido como no XML?
Recentemente fiz um projecto em .NET e C# em que gravava os dados num ficheiro (em formato JSON) e bastava-me especificar a codificação como UTF8 que era correctamente lido na página web. Não tenho grande experiência com XML mas pelo que sei dá para especificar a codificação no “cabeçalho” do ficheiro xml, o que não acontece com JSON.
JSON não é o substituto do XML…
Substitui neste caso isolado. Porque queremos coisas diferentes, sim concordo, agora com a afirmação que substitui é a mesma coisa que dizer que o RONALDO substitui o Messi quando tem características diferentes.
Quem é do tempo do SGML e viu nascer o XML, percebe bem…
Sim existe um substituído do XML que para alem da simples declaração fornece algo mais… Google it.
[]
Olá,
Uso o JSON já há alguns anos e acho este artigo muito bem escrito. Porém, tenho de concordar com este comentário, já que o JSON poderá substituir o XML em algumas coisas (Ajax requests / responses), mas noutras não acredito que me parece.
Cada coisa no seu lugar e há que tirar partido das vantagens de um formato em determinado contexto e utilizar outro formato e as respectivas vantagens noutro contexto.
Para quem conhece, já imaginaram um ficheiro SAFT-PT em JSON? Não estou a ver… 😛
Abraços e parabéns ao Blog!
Isto parece uma mistura de CSS com XML :S, não conhecia, mas vou explorar.
Sim é tipo uma mistura …… #not 😛
algo ferramenta que ja venha com isto de origem e que se possa da uns toques?
É bom conhecer novas ferramentas. Quanto tiver opurtunidade já exploro.