9 puntos por GN⁺ 2024-12-09 | 2 comentarios | Compartir por WhatsApp
  • JSON5 es un formato que extiende el formato de archivos JSON para que sea más fácil de escribir y mantener por personas
    • No se usa para comunicación entre máquinas
    • Comenzó en 2012 y, para 2022, superaba los 65 millones de descargas semanales, ubicándose entre el 0.1% de los paquetes más utilizados como dependencia en npm
    • Ha sido adoptado por proyectos importantes como Chromium, Next.js, Babel, Retool y WebStorm
    • Tiene soporte nativo en plataformas de Apple como macOS e iOS
  • Características de JSON5
    • Es un superconjunto de JSON e incluye parte de la sintaxis de ECMAScript 5.1
    • Un archivo JSON5 siempre es un archivo ES5 válido
  • Funciones extendidas de ECMAScript 5.1
    • Objetos
      • Las claves de los objetos pueden ser IdentifierName de ECMAScript 5.1
      • Se permite una sola coma final en objetos
    • Arreglos
      • Se permite una sola coma final en arreglos
    • Cadenas
      • Las cadenas pueden ir entre comillas simples
      • Pueden abarcar varias líneas si se escapa el salto de línea
      • Pueden incluir secuencias de escape de caracteres
    • Números
      • Pueden expresarse en hexadecimal
      • Pueden tener punto decimal inicial o final
      • Pueden incluir infinito positivo, infinito negativo y NaN de IEEE 754
      • Pueden comenzar con un signo más explícito
    • Comentarios
      • Se permiten comentarios de una sola línea y de varias líneas
    • Espacios en blanco
      • Se permiten caracteres adicionales de espacio en blanco
  • API
    • JSON5.parse(): analiza una cadena JSON5 y genera un valor u objeto de JavaScript
    • JSON5.stringify(): convierte un valor de JavaScript en una cadena JSON5
  • CLI
    • Ofrece un CLI para convertir JSON5 a JSON o validar la sintaxis de documentos JSON5
  • Compatibilidad con ECMAScript
    • JSON5 fue diseñado para ser completamente compatible con ES5, pero los caracteres U+2028 y U+2029 no están permitidos en ES5
    • En ES2019 estos caracteres pasaron a estar permitidos, por lo que JSON y JSON5 son totalmente compatibles con ES2019
  • Licencia
    • Se ofrece bajo licencia MIT

2 comentarios

 
GN⁺ 2024-12-09
Comentarios en Hacker News
  • JSON solo admite cadenas entre comillas dobles, lo que elimina el debate sobre el uso de comillas. Se puede usar JSONC para agregar comentarios y comas finales
    • JSONC se usa como formato de configuración en Visual Studio Code
  • Considera que el nombre JSON5 es poco ético. Si no cuenta con la aprobación del autor original, es inapropiado insinuar que es como una siguiente versión
  • Prefiere JSON5 y considera que YAML tiene poca legibilidad. A menudo usa herramientas de conversión a JSON para entender archivos YAML
  • JSON se usa ampliamente porque es simple. Considera que alternativas complejas como XML o YML no son adecuadas
    • Usar formatos complejos puede causar problemas
  • Lamenta que EDN no haya sido adoptado mucho fuera del ecosistema de Clojure
    • No existe un estándar, pero los usuarios lo usan sin problemas
  • Señala un problema con los caracteres especiales en JSON. JSON está definido como UTF-8, pero tiene un error al describir incorrectamente los caracteres de control ASCII de 7 bits
    • En el RFC deberían incluirse 33 caracteres de control
  • Recomienda TOML y cree que es la combinación perfecta entre legibilidad humana y soporte de herramientas
  • No considera buena idea admitir más tipos en alternativas a JSON/YAML
    • NestedText es casi ideal, pero usa varias sintaxis y no incluye los comentarios en el modelo de datos
  • Señala que JSON5 no introdujo una secuencia de escape \U para caracteres Unicode fuera del BMP
    • Tener que usar pares sustitutos UTF-16 es engorroso y no se ajusta al estándar Unicode
  • Considera que en JSON no se necesitan más funciones aparte de comentarios y un tipo datetime nativo
    • Cree que las comas finales son útiles