JSONC
Fișierele de stocare storh sunt obiecte JSON, iar citirile acceptă JSONC: comentarii pe linie, comentarii bloc și virgule finale. Astfel, fișierele de înregistrări pot fi deschise și adnotate în siguranță într-un editor; storh le analizează în continuare.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Citirile încearcă mai întâi json_decode strict și recurg la JSONC pentru eliminare doar dacă acesta eșuează, astfel încât fișierele canonice nu suportă costul gestionării comentariilor.
Ce scrie storh
Scrierile sunt canonice, compacte, pe o singură linie, în format JSON și se termină cu un rând nou:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Comentariile și formatarea personalizată se păstrează până când storh rescrie înregistrarea respectivă.
Un put() pentru același id înlocuiește întregul fișier cu rezultatul canonic, așa că tratați comentariile ca note temporare, nu ca metadate persistente. Informațiile persistente aparțin în data.
Codificarea păstrează caracterele unicode și barele oblice fără escape și menține fracțiile zero ale numerelor float (1.0 rămâne 1.0), astfel încât decodificarea și recodificarea acelorași date păstrează octeții neschimbați. Manifestele de index și alte fișiere interne de metadate sunt obiecte JSON, cu aceeași toleranță la citire.
Jsonc::decode_object() respinge documentele care nu sunt obiecte și intrările malformate.
Jsonc::encode_object() și Jsonc::encode_compact_object() scriu array-uri ca documente obiect.