Cuanto te creas una aplicación, uno de sus problemas es el de la configuración. Hay que guardarla, cargarla y aplicarla. Una opción para guardarla es usar XML, un formato ampliamente conocido, estándar y con muchas librerías que te ayudarán a tratarlo. Además, hacer una DTD es muy sencillo.
El problema llega cuando la configuración es tan grande que si no tienes procesos automatizados que la carguen, ésta se vuelve inmanejable. Hay tantas líneas de código que escribir para cargar un sólo valor que es totalmente contraproducente. Y eso que existen librerías bastante buenas (yo usaba PugiXML, no es que sea la mejor pero se adaptaba perfectamente a mis necesidades).
Es por eso que he hecho algunos prototipos y he decido cambiar el formato de guardado de la configuración de mi proyecto a JSON. Y para su tratamiento he usado la librería JsonCpp.
Esta librería está escrita en C++ y tiene una interfaz similar al acceso a map‘s de C++, usando los corchetes como método de acceso, posibilitando también el acceso encadenado (como si fuesen arrays multidimensionales). También está la librería JsonGlib, pero está escrita en C y no me gusta integrar librerías en C en aplicación en C++.
Además tiene un API muy clara y sencilla que conseguirá que, tanto la inclusión en el proyecto, como la programación de la misma se vuelva muy fácil (yo apenas tardé una hora en hacer un programa que cargase, guardase y chequease un archivo JSON).
Con esto se consigue que el mantenimiento del código de cargar de la configuración se reduzca enormemente (más o menos en mi proyecto, el código se ha reducido un 15%) y sea mucho más fácil de mantener.
La única “pega” que tiene esta librería es que todavía está en la versión 0.5.0, pero habrá que estar antentos a cada mejora e incluirla en tu aplicación.
En conclusión, si necesitáis manejar archivos en formato JSON en aplicaciones escritas en C++, os recomiendo esta librería
.





