Clojure:
Работа с YAML
Как это сделать:
Clojure изначально не поддерживает работу с YAML. Вам потребуется использовать библиотеку, например, clj-yaml
. Сначала добавьте её в зависимости:
;; Добавить в project.clj или deps.edn
[clj-yaml "0.7.0"]
Теперь давайте разберёмся, как преобразовать строку YAML в карту Clojure и обратно:
(require '[clj-yaml.core :as yaml])
;; Преобразование строки YAML в карту Clojure
(let [yaml-str "foo: bar\nbaz: 42"]
(yaml/parse-string yaml-str))
;; => {"foo" "bar", "baz" 42}
;; Преобразование карты Clojure в YAML
(let [clojure-map {"foo" "bar", "baz" 42}]
(yaml/generate-string clojure-map))
;; Выводит строку YAML:
;; foo: bar
;; baz: 42
Погружение в детали
YAML был впервые выпущен в 2001 году с целью быть более читаемым, чем XML, при этом предлагая богаче структуры данных, чем JSON. clj-yaml
построена на основе SnakeYAML, библиотеки Java, что позволяет обеспечивать взаимодействие с языками JVM. Альтернативы включают прямое использование org.yaml.snakeyaml
или cheshire
для преобразования в JSON, поскольку JSON является подмножеством YAML.
Смотрите также
Углубитесь в тему с помощью этих ресурсов:
- Официальный сайт YAML: https://yaml.org
- Github для clj-yaml: https://github.com/clj-commons/clj-yaml
- Движок SnakeYAML: https://bitbucket.org/asomov/snakeyaml-engine