Lamentablemente, JSON no admite el uso de comentarios, y este es un hecho muy decepcionante, especialmente para los que queremos que otros aprendan más sobre el programa que estamos desarrollando.
Esta decisión fue tomada por su diseñador Douglas Crockford porque la gente los usaba para mantener las directivas de análisis.
No tener formas de usar comentarios en JSON no significa necesariamente que no está disponible; aquí hay una técnica común sugerida por Douglas Crockford para anotar en su JSON:
Suponga que está utilizando JSON para guardar los archivos de configuración, que desea anotar. Inserta todos los comentarios que te gusten. Luego canaliza a través de JSMin antes de entregarlo a su analizador JSON.
Suponga que está utilizando JSON para guardar los archivos de configuración, que desea anotar. Inserta todos los comentarios que te gusten. Luego canaliza a través de JSMin antes de entregarlo a su analizador JSON.
Y si esto no es suficiente aquí hay un ejemplo:
Una demostración rápida con Python 2.7
1. Cree un archivo de configuración de JSON no válido usando la cadena de comentario / ** / Vea el ejemplo a continuación.
2. Instale jsmin usando ~> pip jsmin
3. Pruebe la minificación
~> Python -m jsmin 'C:\Temp\config.json'
4. Cree el script a continuación y ejecútalo.
1. Cree un archivo de configuración de JSON no válido usando la cadena de comentario / ** / Vea el ejemplo a continuación.
2. Instale jsmin usando ~> pip jsmin
3. Pruebe la minificación
~> Python -m jsmin 'C:\Temp\config.json'
4. Cree el script a continuación y ejecútalo.
Ejemplo comentado JSON no válido
{ "rabbitmq":{/*Empieza RabbitMQ ajustes*/ "virtual_host" :"/", /*Int of AMQP canal_max valor*/ "canal_max" :"None", "frame_max" :"None", /*Int of AMQP frame_max valor } }
Script para Minificar en Python
#!/usr/bin/python from jsmin import jsmin import json with open('c:\\Temp\\config.json') as _invalidJSON: raw = _invalidJSON.read(); print raw with open('c:\\Temp\\config.json') as _invalidJSON: config = jsmin(_invalidJSON.read()); print config print type(config) validJSON = json.loads(config) print validJSON print type(validJSON) print validJSON['rabbitmq']['exchange_type']
Resultado de la Minificación
python -m jsmin 'C:\Temp\config.json' {"rabbitmq": {"virtual_host":"/","channel_max":"None","frame_max":"None","exchange_type":"fanout"}}
Vale la pena señalar que aunque la especificación JSON no incluye soporte para comentarios en su versión final (borradores anteriores), muchos / la mayoría de los decodificadores JSON realmente admiten el uso de los denominados comentarios de estilo C y C ++. Es decir, / * ... * / y // .
¿Crees que es un error no poder poner comentarios? ¿Conoces otra técnica para agregar comentarios en JSON? Déjalo en los comentarios.
No hay comentarios:
Publicar un comentario