JSONC
storh-tallennustiedostot ovat JSON-objekteja, ja luku hyväksyy JSONC-muodon: rivikommentit, lohkokommentit ja pilkut viimeisten alkioiden jälkeen. Tietuetiedostot voi siis avata ja kommentoida editorissa turvallisesti; storh jäsentää ne silti.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Luku yrittää ensin tiukkaa json_decode-jäsennystä ja siirtyy JSONC-poistajaan vasta sen epäonnistuessa, joten kanonisiin tiedostoihin ei koskaan kulu aikaa kommenttien käsittelyyn.
Mitä storh kirjoittaa
Kirjoitukset ovat kanonisia, tiiviitä, yksirivisiä JSON-tiedostoja, joiden lopussa on rivinvaihto:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Kommentit ja mukautettu muotoilu säilyvät, kunnes storh kirjoittaa kyseisen tietueen uudelleen. put() samalle tunnukselle korvaa koko tiedoston kanonisella tulosteella, joten käsittele kommentteja väliaikaisina muistiinpanoina, älä pysyvänä metatietona. Pysyvät tiedot kuuluvat kohteeseen data.
Koodaus säilyttää Unicode-merkit ja kauttaviivat koodaamattomina sekä säilyttää liukuluvun nollan murto-osan (1.0 pysyy arvona 1.0), joten saman datan purku ja uudelleenkoodaus tuottavat tavutasolla saman tuloksen. Indeksien luettelotiedostot ja muut sisäiset metatietotiedostot ovat JSON-objekteja, ja niiden luku sallii samat poikkeamat.
Jsonc::decode_object() hylkää ei-objektimuotoiset dokumentit ja virheellisen syötteen. Jsonc::encode_object() ja Jsonc::encode_compact_object() kirjoittavat taulukot objektidokumentteina.