JSONC
Файли сховища storh — це об’єкти JSON, а читання підтримує JSONC: коментарі в рядках, блокові коментарі та кінцеві коми. Тож файли записів можна безпечно відкривати й анотувати в редакторі; storh і далі їх обробляє.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Під час читання спершу використовується суворий json_decode, а до засобу видалення JSONC переходять
лише в разі помилки, тож канонічні файли не потребують обробки коментарів.
Що записує storh
Дані записуються у канонічному, компактному, однорядковому форматі JSON із кінцевим символом нового рядка:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Коментарі й власне форматування зберігаються, доки storh наступного разу не перезапише цей запис.
put() для того самого ідентифікатора замінює весь файл канонічним вмістом, тож
вважайте коментарі тимчасовими нотатками, а не довговічними метаданими. Довговічна інформація
має зберігатися в data.
Під час кодування Unicode-символи та слеші залишаються без екранування, а дробова
частина нуля зберігається (1.0 залишається 1.0), тож декодування й повторне кодування тих самих даних
не змінює байти. Маніфести індексів та інші внутрішні файли метаданих — це об’єкти JSON
з такою самою поблажливістю під час читання.
Jsonc::decode_object() відхиляє документи, які не є об’єктами, і некоректні дані.
Jsonc::encode_object() та Jsonc::encode_compact_object() записують масиви як
документи-об’єкти.