
# 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.

```jsonc
{
  // 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:

```text
{"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.
