JSONC
Los archivos de almacenamiento de storh son objetos JSON y las lecturas aceptan JSONC: comentarios de línea, comentarios de bloque y comas finales. Así, los archivos de registros se pueden abrir y anotar sin riesgo en un editor; storh sigue analizándolos.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Las lecturas prueban primero un json_decode estricto y solo recurren al eliminador de JSONC si falla, de modo que los archivos canónicos nunca pagan el coste de procesar comentarios.
Qué escribe storh
Las escrituras son JSON canónicos, compactos y de una sola línea, con un salto de línea final:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Los comentarios y el formato personalizado se conservan hasta que storh vuelve a escribir ese registro. Una put() en el mismo identificador reemplaza el archivo entero con la salida canónica, así que considere los comentarios notas provisionales, no metadatos duraderos. La información duradera debe ir en data.
La codificación conserva Unicode y las barras sin escapar, y mantiene las fracciones de cero en valores flotantes (1.0 sigue siendo 1.0), de modo que decodificar y volver a codificar los mismos datos produce los mismos bytes. Los manifiestos de índices y otros archivos de metadatos internos son objetos JSON con la misma tolerancia de lectura.
Jsonc::decode_object() rechaza documentos que no sean objetos y las entradas malformadas.
Jsonc::encode_object() y Jsonc::encode_compact_object() escriben los arreglos como documentos objeto.