Notícias:

SMF - Just Installed!

Main Menu

Biblioteca json em Prisma

Iniciado por adalberto, Maio 28, 2017, 08:27:02 PM

tópico anterior - próximo tópico

adalberto

O que é json?

"um acrônimo para "JavaScript Object Notation", é um formato de padrão aberto que utiliza texto legível a humanos para transmitir objetos de dados consistindo de pares atributo-valor. É o formato de dados mais comumente utilizado para comunicação assíncrona navegador/servidor, substituindo amplamente o XML, sendo usado pelo AJAX."
                                                                                                                      https://pt.wikipedia.org/wiki/JSON

O formato json surgiu com o Javascript, mas hoje em dia, qualquer linguagem pode utilizar este formato.
Sua função basicamente é a mesma que a biblioteca REG em Prisma: gravar variáveis em arquivo texto.

Ao se utilizar Prisma como CGI Web fica muito necessário uma biblioteca como esta, simples mas eficiente.

Não fui eu que a criei, utilizei a máxima "Nada se cria, nada se perde, tudo se transforma", e para não perder tempo fui atrás de uma lib lua e a converti para Prisma. Veja o trabalho original json.lua aqui: https://github.com/rxi/json.lua

Baixe a lib nos anexos, e vamos ao exemplo:


local json = inclua'json'

tab = {
dia={123,12,123,123},
semana={'Dom','Seg','Ter','Qua','Qui','Sex','Sáb'},
cor = {azul={0,0,255 }} //tabela dentro de tabela.
}

ret, err = json.cod_arquivo('teste.json', tab); //primeiro parâmetro nome do arquivo, segundo tabela.

se nao ret entao erro(err) fim;


tab, err = json.decod_arquivo('teste.json');

se nao tab entao erro(err) fim;

imprima( tab.cor.azul[3], tab.dia[1], tab.semana[1] );



Há quatro funções principais:

Duas que convertem tabela em string json vice-versa:

str, err = json.cod(tab);  tab, err = json.decod(str);
Obs.: cod = codifique e decod = decodifique.

Outras duas para ler e gravar em arquivo diretamente:

ret, err = json.cod_arquivo('nome', tab);
tab, err = json.decod_arquivo('nome');

Obs.: observe que sempre temos dois possíveis retornos:

Caso não haja erro o primeiro é o objeto ou verdadeiro, e o segundo retorno é nulo.
Caso haja erro o primeiro retorno é falso e o segundo uma mensagem de erro.

Futuras versões Prisma já terão essa lib por padrão.

É isso, por enquanto, até mais.