JSONC
I file di archiviazione storh sono oggetti JSON e le letture accettano JSONC: commenti su riga singola, commenti su più righe e virgole finali. In questo modo è sicuro aprire e annotare i file dei record in un editor; storh continua comunque a elaborarli.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Le letture provano prima l'json_decode rigoroso e ricorrono al rimozione dei commenti JSONC solo se fallisce, così i file canonici non sostengono mai il costo della gestione dei commenti.
Cosa scrive storh
Le scritture sono documenti JSON canonici, compatti, su una sola riga e con newline finale:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Commenti e formattazione personalizzata vengono mantenuti finché storh non riscrive il record.
Una put() allo stesso ID sostituisce l'intero file con un output canonico, quindi
considerate i commenti come appunti temporanei, non come metadati persistenti. Le informazioni persistenti
vanno inserite in data.
La codifica conserva Unicode e le barre senza escape e mantiene le frazioni decimali degli zero
(1.0 resta 1.0), quindi decodificare e ricodificare gli stessi dati produce
byte identici. I manifest degli indici e gli altri file di metadati interni sono oggetti JSON
con la stessa tolleranza in lettura.
Jsonc::decode_object() rifiuta documenti che non sono oggetti e input malformati.
Jsonc::encode_object() e Jsonc::encode_compact_object() scrivono gli array come
documenti oggetto.