Clojure:
Praca z JSON

Jak to zrobić:

Clojure nie zawiera wbudowanych funkcji do pracy z JSON, więc typowo używa się bibliotek firm trzecich. cheshire i jsonista to popularne wybory ze względu na ich łatwość użycia i wydajność.

Korzystanie z Cheshire

Pierwsze, dodaj Cheshire do zależności swojego projektu w project.clj:

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

Aby sparsować ciąg JSON do mapy Clojure i przekształcić mapę w ciąg JSON:

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

;; Parsowanie ciągu JSON do mapy Clojure
(let [json-input "{\"name\":\"John\", \"age\":30}"]
  (json/parse-string json-input true)) ; => {"name" "John", "age" 30}

;; Konwersja mapy Clojure do ciągu JSON
(let [clj-map {"name" "John", "age" 30}]
  (json/generate-string clj-map)) ; => "{\"name\":\"John\",\"age\":30}"

Korzystanie z Jsonista

Dodaj Jsonista do swojego projektu project.clj:

[jsonista "0.3.2"]

Podobne operacje z Jsonista:

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

;; Parsowanie ciągu JSON do Clojure
(let [json-input "{\"name\":\"Emily\", \"age\":25}"]
  (j/read-value json-input)) ; => {"name" "Emily", "age" 25}

;; Konwersja mapy Clojure do ciągu JSON
(let [clj-map {"name" "Emily", "age" 25}]
  (j/write-value-as-string clj-map)) ; => "{\"name\":\"Emily\",\"age\":25}"

W obu bibliotekach masz możliwość kodowania i dekodowania bardziej złożonych struktur danych, a także są dostępne dodatkowe funkcje i parametry, które pozwalają na dostosowanie procesów serializacji i deserializacji. Dla większości aplikacji, przedstawiona funkcjonalność zapewnia solidną podstawę do pracy z JSON w aplikacjach Clojure.