Overview sobre JSON.
O que é JSON ?
JSON (JavaScript Object Notation) basicamente é um formato leve de troca de dados e informações entre sistemas, baseado em texto derivado de JavaScript
JSON define apenas duas estruturas de dados: objetos e matrizes. Um objeto é um conjunto de pares nome-valor e uma matriz é uma lista de valores. JSON define sete tipos de valor: string, número, objeto, matriz, verdadeiro, falso e nulo.
JSON Sintaxe
- Os dados são representados em pares nome / valor.
- Os colchetes prendem objetos e cada nome é seguido por ‘:’ (dois pontos), os pares nome / valor são separados por, (vírgula).
- Os colchetes contêm matrizes e os valores são separados por, (vírgula).
Abaixo um exemplo de JSON
{
"primeiroNome": "Joao",
"segundoNome": "Silva",
"idade": 18,
"endereco": "Rua Dois",
"cidade": "Minas Gerais",
"contatos": [
{"Movel": "111-111-1111"},
{"Casa": "222-222-2222"}
]
}
Vantagens do JSON:
- Leitura mais simples
- Analisador(parsing) mais fácil
- JSON suporta objetos
- Velocidade maior na execução e transporte de dados
- Arquivo com tamanho reduzido
Agora que já sabemos o que é JSON e suas vantagens vamos ver como que funciona no Deluge.
No Deluge temos duas funções para o JSON que é a getJSON e toJSONList abaixo vamos abordar cada uma delas.
getJSON
A função getJSON recupera valores de um texto formatado em JSON ou uma coleção de valores-chave, usando uma chave.
Sintaxe
<variavel>=<entrada>.getJson(<chave>);
<variavel> Variável que contém o valor retornado. O tipo de dados deste parâmetro depende do tipo do valor retornado.
<entrada> O texto formatado em JSON ou a coleção de valores-chave a partir da qual o valor da chave especificada precisa ser buscado.
Observação: Se a entrada não for um TEXTO formatado em JSON ou não for uma coleção KEY-VALUE, um erro de tempo de execução será gerado.
A chave cujo valor precisa ser retornado.
Se a chave especificada não for encontrada, um valor nulo será retornado.
O código abaixo criamos uma variável com formato JSON em seguida vamos obter esses dados e mostrar o nome de cada um que estão dentro dele.
//Variavel em formato json
func = "{\"Dados\":[{\"Name\":\"Victor\",\"Function\":\"Estagiario\",\"Departament\":\"Tecnologia\"},{\"Name\":\"Fernando\",\"Function\":\"CEO\",\"Departament\":\"Tecnologia\"}]}";
// variavel que obtem os Dados
lista = func.getJSON("Dados");
// variável para criar coleção
varFun = Collection();
// Para cada elemento da lista
for each abc in lista
{
//pega o nome
varFun.insert(abc.getJson("Name"));
}
//imprimir nome
info varFun ;
// Saida Victor,Fernando
toJSONList
A função toJSONList pega uma matriz JSON de texto como um argumento e a retorna como uma lista.
Sintaxe
<variavel>=<texto_json>.toJSONList();
<variavel> Variável que conterá a lista JSON convertida.
<texto_json> A matriz JSON de texto que precisa ser convertida em Lista JSON.
O exemplo abaixo temos uma variável no formato JSON, vamos buscar os dados dela e transformar o JSON em lista.
//variavel em JSON
func = "{\"Dados\":[{\"Name\":\"Victor\",\"Function\":\"Estagiario\",\"Departament\":\"Tecnologia\"},{\"Name\":\"Fernando\",\"Function\":\"CEO\",\"Departament\":\"Tecnologia\"}]}";
// variável que pega os dados no JSON
dados = func.getJSON("Dados");
// transfoforma JSON para Lista
json_lista = dados.toJSONList();
// criamos a lista
varlista = List();
// para cada item dentro da lista json_lista
for each item in json_lista
{
//adicionar Function dentro da variável lista varLista
varlista.add(item.getJSON("Function"));
}
// mostra resultado
info varlista ;
// Saída: Estagiario,CEO
Converter Map para JSON
Para converter um Map para JSON no Deluge usamos a seguinte sintaxe:
// mapa que inserimos os parâmetros
params = Map();
// variável com os parâmetros
funcionario1 = {"nome":"Maria","sobrenome":"Silva","departamento":"TI"};
// variável com os parâmetros
funcionario2 = {"nome":"Joao","sobrenome":"Silva","departamento":"RH"};
//variável que atribui os dois parâmetros acima, nela
funcionario = {funcionario1,funcionario2};
// inserimos matriz Funcionarios
params.put("Funcionarios",funcionario);
// imprime com formato de texto
info params.toString();
Saída na Console
{
"Funcionarios": [
{
"nome": "Maria",
"sobrenome": "Silva",
"departamento": "TI"
},
{
"nome": "Joao",
"sobrenome": "Silva",
"departamento": "RH"
}
]
}
Converter List para JSON
Para converter uma List para JSON usamos a seguinte sintaxe:
// cria lista
funcionarios = List();
// variável com atributos em lista
funcionario1 = {"nome":"Maria","sobrenome":"Silva","departamento":"TI"};
// adiciona variável na lista
funcionarios.add(funcionario1);
// variável com atributos em lista
funcionario2 = {"nome":"Joao","sobrenome":"Silva","departamento":"RH"};
// adiciona variável na lista
funcionarios.add(funcionario2);
// Adicionamos um par de colchetes e usamos o to toString para que o formato saia em JSON
funcionariosJSON = "[" + funcionarios.toString() + "]";
//mostra JSON
info funcionariosJSON;
Saída da Console
[
{
"nome": "Maria",
"sobrenome": "Silva",
"departamento": "TI"
},
{
"nome": "Joao",
"sobrenome": "Silva",
"departamento": "RH"
}
]