Към съдържанието

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() записват масивите като обекти на документ.