Перейти до вмісту

JSONC

Файли сховища storh — це об’єкти JSON, а читання підтримує JSONC: коментарі в рядках, блокові коментарі та кінцеві коми. Тож файли записів можна безпечно відкривати й анотувати в редакторі; storh і далі їх обробляє.

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

Під час читання спершу використовується суворий json_decode, а до засобу видалення JSONC переходять лише в разі помилки, тож канонічні файли не потребують обробки коментарів.

Що записує storh

Дані записуються у канонічному, компактному, однорядковому форматі JSON із кінцевим символом нового рядка:

Text
{"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() записують масиви як документи-об’єкти.