JSON5E: una extensión de JSON5 que imita la sintaxis de los archivos de configuración

Fuentes: JSON5E: a JSON5 extension that mimics configuration file syntax

JSON5E es una extensión del formato JSON5 diseñada para que los archivos de configuración resulten más naturales de escribir y mantener a mano. Mientras que JSON5 conserva la forma general de JSON y se inspira en ECMAScript 5, JSON5E lleva esa idea más lejos y trata de parecerse a los ficheros típicos que suelen encontrarse en /etc, sin renunciar al modelo de objetos de JSON.

Entre las novedades que incorpora sobre JSON5 destaca la posibilidad de omitir el objeto raíz implícito: ya no hace falta envolver los pares clave-valor entre llaves cuando el documento es un único objeto, aunque los arrays y los valores simples en el nivel superior siguen siendo válidos. Además, además de la coma, el salto de línea actúa como separador entre elementos, lo que permite escribir listas y objetos con un aspecto muy similar al de los archivos .conf tradicionales. También se amplía el conjunto de caracteres admitidos en los nombres de miembros sin comillas: ahora pueden contener guiones y puntos, siempre que no aparezcan como primer carácter. Por último, se añade el estilo de comentario con almohadilla (#), que se suma a los ya existentes de // y / /.

El resultado es una sintaxis muy reconocible para cualquiera que haya editado archivos de configuración en sistemas Unix, con menos ruido sintáctico y sin perder la estructura jerárquica de JSON. En el repositorio se indican dos implementaciones de analizador sintáctico (parser) compatibles con JSON5E: una en C, llamada libpdjson5, y otra en C++ distribuida como libstud-json.