
# JSONC

Súbory úložiska storh sú objekty JSON a pri čítaní sa akceptujú JSONC: riadkové komentáre,
blokové komentáre a koncové čiarky. Záznamy tak možno bezpečne otvárať a
komentovať v editore; storh ich stále dokáže spracovať.

```jsonc
{
  // Application-owned fields live under data.
  "id": "018bcfe5-6800-7000-8000-000000000000",
  "data": {
    "title": "Home",
  },
}
```

Pri čítaní sa najprv skúsi prísne `json_decode` a na odstraňovač JSONC
sa prejde až v prípade jeho zlyhania, takže kanonické súbory nikdy nezaťaží spracovanie komentárov.

## Čo zapisuje storh

Zápisy majú kanonický, kompaktný, jednoriadkový formát JSON s koncovým novým riadkom:

```text
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
```

Komentáre a vlastné formátovanie zostanú zachované, kým storh záznam znova neprepíše.
`put()` s rovnakým ID nahradí celý súbor kanonickým výstupom, preto
považujte komentáre za dočasné poznámky, nie za trvalé metadáta. Trvalé informácie
patria do `data`.

Kódovanie zachováva znaky Unicode a lomky bez escapovania a ponecháva aj
nulové desatinné časti čísel s pohyblivou rádovou čiarkou (`1.0` zostáva `1.0`), takže dekódovanie a opätovné zakódovanie rovnakých údajov je
stabilné na úrovni bajtov. Manifesty indexov a ďalšie interné súbory metadát sú objekty JSON
s rovnakou toleranciou pri čítaní.

`Jsonc::decode_object()` odmieta dokumenty, ktoré nie sú objektmi, aj nesprávne formátovaný vstup.
`Jsonc::encode_object()` a `Jsonc::encode_compact_object()` zapisujú polia ako
objektové dokumenty.
