JSONC
Soubory úložiště storh jsou objekty JSON a při čtení přijímají JSONC: řádkové komentáře, blokové komentáře a koncové čárky. Díky tomu lze soubory záznamů bezpečně otevřít a opatřit poznámkami v editoru; storh je přesto stále dokáže zpracovat.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Při čtení se nejprve zkouší striktní json_decode a k odstraňovači JSONC se přejde
jen při neúspěchu, takže se u kanonických souborů zbytečně nezpracovávají komentáře.
What storh writes
Zápisy mají kanonický kompaktní formát JSON na jednom řádku a končí znakem nového řádku:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Komentáře a vlastní formátování zůstávají zachovány, dokud záznam znovu nepřepíše storh.
put() se stejným ID nahradí celý soubor kanonickým výstupem, proto berte komentáře jako
pracovní poznámky, nikoli jako trvalá metadata. Trvalé informace patří do data.
Kódování zachovává Unicode a neescapované lomítka a ponechává desetinnou část nulových
čísel s plovoucí desetinnou čárkou (1.0 zůstává 1.0), takže dekódování a opětovné
zakódování stejných dat je bajtově stabilní. Indexové manifesty a další interní soubory
metadat jsou objekty JSON se stejnou tolerancí při čtení.
Jsonc::decode_object() odmítá dokumenty, které nejsou objekty, i nesprávně utvořený vstup.
Jsonc::encode_object() a Jsonc::encode_compact_object() zapisují pole jako
objektové dokumenty.