Vai al contenuto

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.

Jsonc
{
  // 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:

Text
{"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.