JSONC
Les fichiers de stockage storh sont des objets JSON, et les lectures acceptent JSONC : les commentaires de ligne, les commentaires de bloc et les virgules finales. Les fichiers d’enregistrement peuvent ainsi être ouverts et annotés sans risque dans un éditeur ; storh continue de les analyser.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Les lectures tentent d’abord une analyse json_decode stricte et ne recourent au supprimeur JSONC qu’en cas d’échec ; les fichiers canoniques n’ont donc jamais à payer le coût du traitement des commentaires.
Ce que storh écrit
Les écritures produisent un JSON canonique, compact et sur une seule ligne, suivi d’un saut de ligne :
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Les commentaires et la mise en forme personnalisée sont conservés jusqu’à ce que storh réécrive l’enregistrement. Une écriture put() sur le même identifiant remplace le fichier entier par une sortie canonique ; considérez donc les commentaires comme des notes temporaires, et non comme des métadonnées durables. Les informations durables doivent être enregistrées dans data.
L’encodage préserve les caractères Unicode et les barres obliques sans les échapper, et conserve les fractions des valeurs flottantes égales à zéro (1.0 reste 1.0), de sorte que décoder puis réencoder les mêmes données produit un résultat identique octet par octet. Les manifestes d’index et les autres fichiers de métadonnées internes sont des objets JSON qui bénéficient de la même tolérance à la lecture.
Jsonc::decode_object() rejette les documents qui ne sont pas des objets ainsi que les entrées mal formées. Jsonc::encode_object() et Jsonc::encode_compact_object() écrivent les tableaux sous forme de documents objets.