Liking cljdoc? Tell your friends :D

clj-commons/clj-yaml provides YAML encoding and decoding for Clojure via the snakeyaml Java library.

Clojars Project cljdoc badge CircleCI Status

(This is a maintained fork of the original).

Usage

(require '[clj-yaml.core :as yaml])

(yaml/generate-string
  [{:name "John Smith", :age 33}
   {:name "Mary Smith", :age 27}])
"- {name: John Smith, age: 33}\n- {name: Mary Smith, age: 27}\n"

(yaml/parse-string "
- {name: John Smith, age: 33}
- name: Mary Smith
  age: 27
")
=> ({:name "John Smith", :age 33}
    {:name "Mary Smith", :age 27})

By default, keys are converted to clojure keywords. To prevent this, add :keywords false parameters to the parse-string function:

(yaml/parse-string "
- {name: John Smith}
" :keywords false)

Different flow styles (:auto, :block, :flow) allow customization of how YAML is rendered:

(yaml/generate-string some-data :dumper-options {:flow-style :block})

Installation

clj-commons/clj-yaml is available as a Maven artifact from Clojars.

Leiningen/Boot

[clj-commons/clj-yaml "0.7.0"]

Clojure CLI/deps.edn

clj-commons/clj-yaml {:mvn/version "0.7.0"}

Development

$ git clone git://github.com/clj-commons/clj-yaml.git
$ lein deps
$ lein test
$ lein install

Can you improve this documentation? These fine people already did:
tim dixon, Erik Assum, Mark McGranaghan, Marc O'Morain, lance bradley, startling, Emile Snyder, Avi Flax, twelve17, Martin Klepsch, Frederic Merizen, Nate Smith & Aaron Crow
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close