Ga naar de inhoud

JSONC

storh-opslagbestanden zijn JSON-objecten en bij het lezen worden JSONC geaccepteerd: regelcomments, blokcomments en afsluitende komma's. Daardoor kunt u recordbestanden veilig openen en annoteren in een editor; storh kan ze nog steeds parseren.

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

Bij het lezen wordt eerst strikte json_decode geprobeerd. Alleen als dat mislukt, wordt teruggevallen op de JSONC-stripper, zodat canonieke bestanden geen extra kosten maken voor de afhandeling van comments.

Wat storh schrijft

Schrijfbewerkingen produceren canonieke, compacte JSON op één regel, met een afsluitende newline:

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

Comments en aangepaste opmaak blijven behouden totdat storh dat record opnieuw wegschrijft. Een put() naar dezelfde ID vervangt het volledige bestand door canonieke uitvoer. Beschouw comments dus als tijdelijke notities, niet als blijvende metadata. Blijvende informatie hoort in data.

De codering behoudt Unicode en slashes zonder ze te escapen, en behoudt de nulfracties van floats (1.0 blijft 1.0), zodat het decoderen en opnieuw coderen van dezelfde gegevens byte-stabiel is. Indexmanifests en andere interne metadatabestanden zijn JSON-objecten met dezelfde leesflexibiliteit.

Jsonc::decode_object() weigert documenten die geen object zijn en ongeldige invoer. Jsonc::encode_object() en Jsonc::encode_compact_object() schrijven arrays als objectdocumenten.