
# JSONC

storh krātuves faili ir JSON objekti, un nolasīšanā tiek atbalstīts JSONC: vienrindas komentāri, bloka komentāri un beigu komati. Tāpēc ierakstu failus var droši atvērt un komentēt redaktorā; storh tos joprojām parsē.

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

Vispirms nolasīšanas procesā tiek izmantots stingrais `json_decode`, un tikai tad, ja tas neizdodas, tiek izmantots JSONC noņēmējs, tāpēc kanoniskie faili nemaksā par komentāru apstrādi.

## Ko raksta storh

Ieraksti ir kanoniski, kompakti, vienas rindas JSON ar beigu rindpadevi:

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

Komentāri un pielāgots formatējums saglabājas, līdz storh nākamreiz pārraksta šo ierakstu. `put()` tam pašam ID aizstāj visu failu ar kanonisko izvadi, tāpēc uztveriet komentārus kā pagaidu piezīmes, nevis pastāvīgus metadatus. Pastāvīgā informācija jāglabā `data`.

Kodēšana saglabā Unicode un slīpsvītras bez atsoļa rakstzīmēm un saglabā peldošā komata nulles daļas (`1.0` paliek `1.0`), tāpēc to pašu datu atkodēšana un atkārtota kodēšana dod identiskus baitus. Indeksu manifesti un citi iekšējie metadatu faili ir JSON objekti ar tādu pašu pielaidīgu nolasīšanu.

`Jsonc::decode_object()` noraida dokumentus, kas nav objekti, kā arī nepareizi veidotu ievadi.
`Jsonc::encode_object()` un `Jsonc::encode_compact_object()` masīvus raksta kā
objekta dokumentus.
