Clojure:
Travailler avec JSON

Comment faire :

Clojure n’inclut pas de fonctions intégrées pour travailler avec le JSON, vous utiliserez donc généralement des bibliothèques tierces. cheshire et jsonista sont des choix populaires en raison de leur facilité d’utilisation et de leur performance.

Utiliser Cheshire

Tout d’abord, ajoutez Cheshire à vos dépendances de projet dans project.clj :

[com.fasterxml.jackson.core/jackson-core "2.12.0"]
[cheshire "5.10.1"]

Pour parser une chaîne JSON en une map Clojure et convertir une map en chaîne JSON :

(require '[cheshire.core :as json])

;; Parser la chaîne JSON en map Clojure
(let [json-input "{\"name\":\"John\", \"age\":30}"]
  (json/parse-string json-input true)) ; => {"name" "John", "age" 30}

;; Convertir la map Clojure en chaîne JSON
(let [clj-map {"name" "John", "age" 30}]
  (json/generate-string clj-map)) ; => "{\"name\":\"John\",\"age\":30}"

Utiliser Jsonista

Ajoutez Jsonista à votre projet project.clj :

[jsonista "0.3.2"]

Opérations similaires avec Jsonista :

(require '[jsonista.core :as j])

;; Parser la chaîne JSON en Clojure
(let [json-input "{\"name\":\"Emily\", \"age\":25}"]
  (j/read-value json-input)) ; => {"name" "Emily", "age" 25}

;; Convertir la map Clojure en chaîne JSON
(let [clj-map {"name" "Emily", "age" 25}]
  (j/write-value-as-string clj-map)) ; => "{\"name\":\"Emily\",\"age\":25}"

Dans les deux bibliothèques, vous avez la possibilité d’encoder et de décoder des structures de données plus complexes, et il existe des fonctions supplémentaires et des paramètres qui permettent la personnalisation des processus de sérialisation et de désérialisation. Pour la plupart des applications, les fonctionnalités démontrées fournissent une base solide pour travailler avec le JSON dans les applications Clojure.