Gå til indhold

JSONC

storh-lagerfiler er JSON-objekter, og læsning accepterer JSONC: linjekommentarer, blokkommentarer og afsluttende kommaer. Det gør det sikkert at åbne og annotere datafiler i en editor; storh kan stadig parse dem.

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

Læsning prøver først en streng json_decode og bruger kun JSONC-stripperen, hvis det mislykkes, så kanoniske filer aldrig betaler for håndtering af kommentarer.

Hvad storh skriver

Skrivninger er kanoniske, kompakte JSON på én linje med et afsluttende linjeskift:

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

Kommentarer og brugerdefineret formatering bevares, indtil storh omskriver posten. En put() til samme id erstatter hele filen med kanonisk output, så betragt kommentarer som midlertidige noter, ikke varige metadata. Varige oplysninger hører hjemme i data.

Kodning bevarer Unicode og skråstreger uden escaping og bevarer decimaldelen af flydende nulpunkter (1.0 forbliver 1.0), så afkodning og genkodning af de samme data er byte-stabil. Indeksmanifestfiler og andre interne metadatafiler er JSON objekter med samme læsetolerance.

Jsonc::decode_object() afviser dokumenter, der ikke er objekter, samt ugyldigt input. Jsonc::encode_object() og Jsonc::encode_compact_object() skriver arrays som objektdokumenter.