Clojure:
Lavorare con JSON

Come fare:

Clojure non include funzioni integrate per lavorare con il JSON, quindi di solito si utilizzano librerie di terze parti. cheshire e jsonista sono scelte popolari grazie alla loro facilità d’uso e performance.

Usare Cheshire

Prima, aggiungi Cheshire alle dipendenze del tuo progetto in project.clj:

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

Per analizzare una stringa JSON in una mappa di Clojure e convertire una mappa in una stringa JSON:

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

;; Analizzare stringa JSON a mappa Clojure
(let [json-input "{\"name\":\"John\", \"age\":30}"]
  (json/parse-string json-input true)) ; => {"name" "John", "age" 30}

;; Convertire mappa Clojure in stringa JSON
(let [clj-map {"name" "John", "age" 30}]
  (json/generate-string clj-map)) ; => "{\"name\":\"John\",\"age\":30}"

Usare Jsonista

Aggiungi Jsonista al tuo progetto project.clj:

[jsonista "0.3.2"]

Operazioni simili con Jsonista:

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

;; Analizzare stringa JSON a Clojure
(let [json-input "{\"name\":\"Emily\", \"age\":25}"]
  (j/read-value json-input)) ; => {"name" "Emily", "age" 25}

;; Convertire mappa Clojure in stringa JSON
(let [clj-map {"name" "Emily", "age" 25}]
  (j/write-value-as-string clj-map)) ; => "{\"name\":\"Emily\",\"age\":25}"

In entrambe le librerie, hai l’opzione di codificare e decodificare strutture dati più complesse, e ci sono funzioni e parametri aggiuntivi che permettono una personalizzazione dei processi di serializzazione e deserializzazione. Per la maggior parte delle applicazioni, la funzionalità dimostrata offre una solida base per lavorare con il JSON in applicazioni Clojure.