json
Codificador e decodificador JSON
Importação
_ <- fat.extra.json
Métodos
Nome | Assinatura | Breve descrição |
---|---|---|
toJson | (x: Any): Text | Cria um json a partir de tipos nativos |
fromJson | (json: Text): Any | Converte um json para tipos nativos |
Notas de uso
"Com grandes poderes vêm grandes responsabilidades" -Peter Parker
Como o FatScript aceita alternativamente sintaxe semelhante a JSON, fromJson
na verdade usa o analisador/lexer interno do FatScript via eval, que é extremamente rápido, mas pode ou não produzir exatamente o que se espera de um conversor JSON.
Por exemplo, uma vez que o fragmento abaixo é analisado, já que null
em FatScript é ausência de valor, não haveria declarações de entrada para "prop":
"prop": null
Portanto, ler com fromJson
e escrever de volta com toJson
não é necessariamente uma operação idempotente.
Atenção!
O método fromJson
deve ser perfeitamente correto e seguro para leitura de arquivos de configuração ou leitura de dados armazenados via toJson
.
No entanto, como fromJson
ingere dados via $eval
, um arquivo especialmente criado pode implementar um programa FatScript e executar código arbitrário!
Se estiver lendo arquivos JSON de uma fonte desconhecida, por segurança, você deve criar seu próprio conversor orientado à segurança.
se você escreveu um conversor JSON alternativo em FatScript e gostaria de compartilhar a referência aqui, consulte o documento contributing