
# JSONC

storh-lagringsfiler är JSON-objekt och läsningar godtar JSONC: radkommentarer,
blockkommentarer och avslutande kommatecken. Det gör postfiler säkra att öppna och
kommentera i en editor; storh tolkar dem fortfarande.

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

Läsningar försöker först med strikt `json_decode` och använder den JSONC-borttagaren
endast om det misslyckas, så kanoniska filer belastas aldrig av hantering av kommentarer.

## Vad storh skriver

Skrivningar är kanoniska, kompakta JSON på en rad med ett avslutande radslut:

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

Kommentarer och anpassad formatering finns kvar tills storh skriver om posten.
En `put()` med samma id ersätter hela filen med kanoniskt utdata, så
behandla kommentarer som tillfälliga anteckningar, inte beständiga metadata. Beständig information
hör hemma i `data`.

Kodningen bevarar unicode och snedstreck utan escaping och behåller float-nollbråk
(`1.0` förblir `1.0`), så en avkodning och omkodning av samma data är
byte-stabil. Indexmanifest och andra interna metadatafiler är JSON
objekt med samma lästolerans.

`Jsonc::decode_object()` avvisar dokument som inte är objekt och felaktig indata.
`Jsonc::encode_object()` och `Jsonc::encode_compact_object()` skriver arrayer som
objektdokument.
