JSONC
Os arquivos de armazenamento storh são objetos JSON, e as leituras aceitam JSONC: comentários de linha, comentários de bloco e vírgulas finais. Assim, é seguro abrir e anotar os arquivos de registro em um editor; storh continua fazendo a análise.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
As leituras primeiro tentam uma análise json_decode estrita e só recorrem ao removedor JSONC
quando ela falha, então os arquivos canônicos não têm o custo do tratamento de comentários.
O que storh grava
As gravações são documentos JSON canônicos, compactos e de uma só linha, com uma quebra de linha ao final:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Comentários e formatação personalizada são preservados até que storh regrave o registro.
Uma put() no mesmo ID substitui o arquivo inteiro pela saída canônica, então
trate os comentários como anotações temporárias, não como metadados duráveis. Informações duráveis
pertencem a data.
A codificação preserva Unicode e barras sem escape e mantém frações zero em números de ponto flutuante
(1.0 continua sendo 1.0), para que a decodificação e a recodificação dos mesmos dados sejam
estáveis em bytes. Os manifestos de índice e outros arquivos de metadados internos são objetos JSON
com a mesma tolerância de leitura.
Jsonc::decode_object() rejeita documentos que não sejam objetos e entradas malformadas.
Jsonc::encode_object() e Jsonc::encode_compact_object() gravam arrays como
documentos de objeto.