Hoppa till innehåll

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.