Clojure:
Работа с JSON

Как это сделать:

Давайте поиграем с JSON в Clojure. Вам понадобится Cheshire, популярная библиотека для кодирования/декодирования JSON.

Сначала добавьте Cheshire в зависимости вашего project.clj:

[cheshire "5.10.1"]

Чтение JSON из строки и преобразование его в карту Clojure:

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

(def json-str "{\"name\":\"Clojure\"}")
(def clojure-map (json/parse-string json-str))

(println clojure-map)  ;; => {"name" "Clojure"}

Преобразование карты Clojure в строку JSON:

(def clojure-data {:language "Clojure" :cool true})
(def json-output (json/generate-string clojure-data))

(println json-output)  ;; => {"language":"Clojure","cool":true}

Разбор JSON из файла:

(slurp "data.json")  ;; содержимое: {"message": "Привет, JSON!"}
(def file-content (slurp "data.json"))
(def message-data (json/parse-string file-content true))

(println message-data)  ;; => {"message" "Привет, JSON!"}

Погружение

История JSON начинается с JavaScript, но теперь он везде, не завися от своего родительского языка. Альтернативы? Раньше выбором был XML, более многословный, правда. YAML проще, более дружелюбный для человека, но не такой универсальный для API. С точки зрения реализации: Clojure - не JavaScript, поэтому библиотеки вроде Cheshire жизненно важны. Они служат мостом, используя под капотом Java-библиотеки для эффективного выполнения разбора и генерации.

Смотрите также