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.