Cómo escribir JSON en Clojure – Comparativa entre Cheshire y clojure.data.json

Escribir JSON es una tarea común en Clojure, especialmente cuando necesitamos serializar datos para enviarlos a APIs o almacenarlos. En esta guía, compararemos dos de las bibliotecas más populares: cheshire y clojure.data.json. Ambas permiten convertir mapas de Clojure a cadenas JSON.

1. Escribir JSON con cheshire

La biblioteca cheshire es conocida por su rapidez y flexibilidad. Un ejemplo básico para convertir un mapa de Clojure a JSON:

(require '[cheshire.core :as json])
(json/generate-string {:nombre "Juan" :edad 30}) ;; "{\"nombre\":\"Juan\",\"edad\":30}"

Además, permite personalizar la serialización, como el formato de fechas:

(json/generate-string {:fecha (java.util.Date.)} {:date-format "yyyy-MM-dd"})

2. Escribir JSON con clojure.data.json

La biblioteca oficial clojure.data.json también nos permite convertir mapas a JSON. Ejemplo básico:

(require '[clojure.data.json :as json])
(json/write-str {:nombre "Juan" :edad 30}) ;; "{\"nombre\":\"Juan\",\"edad\":30}"

También permite ciertas personalizaciones, aunque menos flexibles que cheshire:

(json/write-str {:fecha (java.util.Date.)}) ;; Error, no soporta fechas directamente

3. Comparativa entre cheshire y clojure.data.json

A continuación, se presenta una comparación de estas bibliotecas para escribir JSON:

En general, cheshire es una excelente opción para la mayoría de los proyectos, mientras que clojure.data.json es adecuada para casos donde se prioricen dependencias mínimas.