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-библиотеки для эффективного выполнения разбора и генерации.
Смотрите также
- Репозиторий Cheshire на GitHub: Детали библиотеки и обновления.
- JSON.org: Спецификации и детали JSON.
- Clojure с нуля: JSON: Подробное руководство по работе с JSON в Clojure.