Desenvolvimento de Aplicativos Web - COLTEC/MG
João Eduardo Montandon
Desenvolvimento de Aplicativos Web - COLTEC/MG
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..
Como implementar uma forma eficiente de armazenamento dos dados??
Como implementar uma forma eficiente de armazenamento dos dados??
JavaScript Object Notation
eXtensible Markup Language
eXtensible Markup Language
Linguagem para marcação de dados voltada para armazenamento e transferência de informações
Recomendada pela W3C: 1999
<?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 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?
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
Projetos para fornecer dados de um elemento
Devem ser declarados entre aspas
Não podem conter múltiplos valores
Não podem ser hierarquizados
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>
JavaScript Object Notation
Formato para armazenamento e transferência de informações
Especificado Originalmente por Douglas Crockford. Depois definido formalmente na RFC-7159
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)
{
"note": {
"to": "Tove",
"from": "Jani",
"heading": "Reminder",
"body": "Don't forget me this weekend!"
}
}
{
"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
}
]
}
}
Conjunto desodernado de informações, fornecidas no formato par/valor
Sintaxe: { nome: valor }, { nome: valor }, ....
Conjunto ordernado de valores
Sintaxe: [ val1, val2, val3, ..., valN ]
O formato JSON prevê suporte aos seguintes tipos:
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