Json (JavaScript Object Notation) – O sucessor do XML

46 Comentários

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.

json_00

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).

json_objecto Exemplo

{
	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).

json_array Exemplo:

[ 100, 500, 300, 200, 400 ]
Value

Um value (valor) pode ser uma String (dentro de aspas), um número, ou verdadeiro, false ou null

json_value

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.

jason_string

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.

json_number

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

Partilhar:
Tags:

Comentários

46

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Baltazar
    Baltazar

    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 …

    1. Avatar de Pedro Pinto

      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í.

    2. Avatar de alftuga
      alftuga

      qual é lib que tas usar?
      o json a muito tempo que é usado no as2 e no as3

        1. Avatar de alftuga
          alftuga

          http://code.google.com/p/vegas/

          funciona uma maravilha e tens uma fabrica de ioc com json 😉

          1. Avatar de Baltazar
            Baltazar

            Obrigado!!!

            Vou experimentar. 🙂

  2. Avatar de la_marca
    la_marca

    Já utilizo há algum tempo, mas o xml continuará a ser usado, p.e webservices e afins.

  3. Avatar de António Mendes
    António Mendes

    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.

    1. Avatar de Pedro Pinto

      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 !!!

      1. Avatar de António Mendes
        António Mendes

        hehe. Também me vi negro a primeira vez. Mas que compensa, compensa.

      2. Avatar de la_marca
        la_marca

        No javascript, se utilizares jquery, já tens um parser feito. jQuery.parseJSON(json)

        1. Avatar de Pedro Pinto

          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/

        2. Avatar de Berto
          Berto

          Ou podes fazer:

          var objJsonParsado = eval(‘(‘ + stringJson + ‘)’);

          1. Avatar de la_marca
            la_marca

            eval = evil!
            Funciona, mas é lento.

    2. Avatar de João Pires
      João Pires

      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.

  4. Avatar de Nuno Gonçalves
    Nuno Gonçalves

    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”
    }

    ]

    }

    }
    }

    1. Avatar de Nuno Gonçalves
      Nuno Gonçalves

      Ahm lol é melhor calar-me 🙁

      1. Avatar de Pedro Pinto

        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/

      2. Avatar de Filipe Lourenço

        lol 😀 traído pelo wordpress!

    2. Avatar de Fábio Rocha

      indents ai também não te faziam mal nenhum! 🙂

      1. Avatar de Nuno Gonçalves
        Nuno Gonçalves

        Eu formatei o JSON, mas estes comentarios perdem a formatação toda enfim, na vale o esforço.

        1. Avatar de ismael
          ismael

          Indentar e não formatar. Penso eu que é mais correcto 🙂

  5. Avatar de Fábio Rocha

    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.

  6. Avatar de Nuno Gonçalves
    Nuno Gonçalves

    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.

  7. Avatar de Guilherme de Sousa
    Guilherme de Sousa

    Não conhecia, mas parece realmente interessante. Da próxima vez que sentir necessidade de algo do
    genero ei de experimentar.

    Bom post!

    Cum

    1. Avatar de Guilherme de Sousa
      Guilherme de Sousa

      double post, srry. alguem que apague pfv

  8. Avatar de MightyOne
    MightyOne

    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

    1. Avatar de Luís Marado
      Luís Marado

      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.

      1. Avatar de Pedro Pinto

        @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

    2. Avatar de Pedro Pinto

      @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

      1. Avatar de Sergio
        Sergio

        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

  9. Avatar de JP
  10. Avatar de El Kabong
    El Kabong

    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 ?

    1. Avatar de Pedro Pinto

      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)

  11. Avatar de Fábio
    Fábio

    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.

  12. Avatar de José Romão
    José Romão

    json deriva do jfather 😛

    realmente é uma excelente alternativa ao xml… ver se começo a aplica-lo mais vezes nas aplicaçoes que desenvolvo

  13. Avatar de Lucas Mezencio

    Trabalho com JSON há 2 anos.

    Não consigo mais trabalhar com XML.

    1. Avatar de LuisF
      LuisF

      eu ainda trabalho com bits

  14. Avatar de João Zenha
    João Zenha

    É 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?

    1. Avatar de Fábio
      Fábio

      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.

  15. Avatar de Enfim
    Enfim

    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.

    []

    1. Avatar de Pedro Martins
      Pedro Martins

      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!

  16. Avatar de Henrique Crachat
    Henrique Crachat

    Isto parece uma mistura de CSS com XML :S, não conhecia, mas vou explorar.

    1. Avatar de Enfim
      Enfim

      Sim é tipo uma mistura …… #not 😛

  17. Avatar de jedi
    jedi

    algo ferramenta que ja venha com isto de origem e que se possa da uns toques?

  18. Avatar de Luís Santos
    Luís Santos

    É bom conhecer novas ferramentas. Quanto tiver opurtunidade já exploro.