JSON – Interoperabilidade de Dados e Informações na Internet

porLuis Augusto Moretto

JSON – Interoperabilidade de Dados e Informações na Internet

Introdução

A interoperabilidade é a capacidade de um sistema de se comunicar de forma transparente com outro sistema. Para um sistema ser considerado interoperável, é essencial que ele trabalhe com padrões abertos ou ontologias.

Seja um portal, um sistema educacional ou ainda um comércio eletrônico, ou e-commerce, hoje em dia se caminha cada vez mais para a criação de padrões de arquiteturas de software interoperáveis.

Um dos mecanismos para interoperabilidade é a criação de Webservices e serviços REST. Um Webservice ou service REST permitem aos sistemas que se comuniquem trocando dados e informações.

Entretanto para que ambos estabeleçam um protocolo de interoperabilidade nao basta a porta (REST). É necessário uma linguagem comum que pode ser o XML ou JSON.

Entendendo o JSON

O JSON é formado de tuplas de chave e valor. Assim como um Hashmap em Java, o JSON possui chaves identificadoras e o valor para aquela chave. Veja o exemplo abaixo:

{
    "nome": "John",
    "sobreNome": "Smith",
    "idade": 25,
    "endereco": {
        "rua": "21 2nd Street",
        "cidade": "New York",
        "estado": "NY",
        "cep": 10021
    },
    "telefones": [
        {
            "tipo": "home",
            "numero": "212 555-1234"
        },
        {
            "tipo": "fax",
            "numero": "646 555-4567" 
        }
    ] 
}

Acima a representação JSON de um objeto que descreve uma pessoa. O objeto possui valores de string para o primeiro nome e sobrenome, um valor numérico para idade, um valor de objeto representando o endereço da pessoa e um valor de matriz de objetos de número de telefone. Para entender melhor o comportamento:

Formação dos objetos

 

Formação dos Arrays

 

Estrutura do padrão

Uma coleção de pares nome / valor. Em diversas linguagens de programação, isso é realizado como um objeto, registro, estrutura, dicionário, tabela de hash, lista com chave ou matriz associativa.
Uma lista ordenada de valores. Na maioria das linguagens, isso é percebido como uma matriz, vetor, lista ou seqüência.

Estas são estruturas de dados universais. Praticamente todas as modernas linguagens de programação as suportam de uma forma ou de outra. Faz sentido que um formato de dados que seja interoperável com linguagens de programação também seja baseado nessas estruturas.

Praticando

Dado o modelo de classes abaixo. Faça uma representação dos objetos para o modelo. Escreva o JSON correspondente em um arquivo texto. Ao final valide o conteúdo de seu json em https://jsonlint.com/

UML model JSON Object

UML model JSON Object