XML & JSON

Desenvolvimento de Aplicativos Web - COLTEC/MG

XML & JSON

João Eduardo Montandon

Desenvolvimento de Aplicativos Web - COLTEC/MG

Introdução

O armazenamento via Banco de Dados requer estrutura robusta e consolidada para funcionar

Nem sempre tal estrutura estará disponível para uso no desenvolvimento do seu sistema

Exemplos: Sistemas embarcados, dispositivos móveis, etc..

Introdução

Como implementar uma forma eficiente de armazenamento dos dados??

Introdução

Como implementar uma forma eficiente de armazenamento dos dados??

JavaScript Object Notation

eXtensible Markup Language

A Linguagem XML

O que é?

eXtensible Markup Language

Linguagem para marcação de dados voltada para armazenamento e transferência de informações

Recomendada pela W3C: 1999

XML: Características

XML: Exemplo

          <?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
        

XML: Estrutura

XML: Estrutura

  1. Presença de um elemento raiz
  2. Qualquer elemento pode ter filhos
  3. Todo elemento tem um pai (exceto o raiz)
  4. Relação se dá pela hierarquia entre os elementos (parent, child, sibling, etc..)
  5. Elementos podem ter atributos
            <?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>
          

O que esse arquivo armazena?

Qual elemento raiz?

Quantos filhos ele possui?

Quais são seus atributos?

XML: O Elemento

O elemento define a instância de uma informação armazenada no XML

Pode ser primitivo ou composto de outros elementos

São case sensitive

Podem possuir atributos com informações extras

XML: O Atributo

Projetos para fornecer dados de um elemento

Devem ser declarados entre aspas

Não podem conter múltiplos valores

Não podem ser hierarquizados

XML: Atributos vs Elementos

Qual é a melhor opção?

            <note date="2008-01-10">
  <to>Tove</to>
  <from>Jani</from>
</note>
          
            <note>
  <date>2008-01-10</date>
  <to>Tove</to>
  <from>Jani</from>
</note>
          
            <note>
  <date>
    <year>2008</year>
    <month>01</month>
    <day>10</day>
  </date>
  <to>Tove</to>
  <from>Jani</from>
</note>
          

Formato JSON

O que é?

JavaScript Object Notation

Formato para armazenamento e transferência de informações

Especificado Originalmente por Douglas Crockford. Depois definido formalmente na RFC-7159

Principais Características

Representação baseada na sintaxe de objetos em JavaScript

Fácil legibilidade, pouco verboso (extremamente leve)

Fácil navegação entre as informações presentes na estrutura (diferentemente do DOM em XML)

Exemplo

          {
  "note": {
    "to": "Tove",
    "from": "Jani",
    "heading": "Reminder",
    "body": "Don't forget me this weekend!"
  }
}
        

Estrutura

Estrutura

  1. Dados são passados no formato de tuplas
  2. Dados são separados por vírgula
  3. Os valores podem ser compostos por strings, números, booleanos, vetores ou outros objetos
  4. Possui as mesmas propriedades hierárquicas do XML

Estrutura

  1. Dados são passados no formato de tuplas
  2. Dados são separados por vírgula
  3. Os valores podem ser compostos por strings, números, booleanos, vetores ou outros objetos
  4. Possui as mesmas propriedades hierárquicas do XML
          {
  "bookstore": {
    "book": [
      {
        "category": "cooking",
        "title": {
          "lang": "en",
          "text": "Everyday Italian"
        },
        "price": 30.00
      },
      {
        "category": "children",

        
                  "title": {
          "lang": "en",
          "text": "Harry Potter"
        },
        "price": 29.99
      },
      {
        "category": "web",
        "title": {
          "lang": "en",
          "text": "Learning XML"
        },
        "price": 39.95
      }
    ]
  }
}
        

Object

Conjunto desodernado de informações, fornecidas no formato par/valor

Sintaxe: { nome: valor }, { nome: valor }, ....

Array

Conjunto ordernado de valores

Sintaxe: [ val1, val2, val3, ..., valN ]

Valores

O formato JSON prevê suporte aos seguintes tipos:

  • string
  • numéricos
  • objetos
  • arrays
  • booleanos (true e false)
  • null

XML & JSON

Considerações Finais

XML & JSON: Considerações Finais

XML e JSON proveem um padrão consolidado tanto para armazenamento quanto para envio de dados

Ambos organizam os dados de forma hierárquica

Qual deles é melhor? Stop Comparing JSON and XML

Referências

w3schools: XML

w3schools: JSON

json.org

Fork me on Github