我想以标记文字的形式从Clojure中编写一个EDN数据文件。尽管clojure.edn API包含read
和read-string
函数,但没有编写器。我了解到有关此问题的报告在这里。基于这一点,我理解今天应该使用pr
和pr-str
函数。
我想向StackOverflow社区确认是否以下内容被认为是编写EDN文件的“正确”方法:
(spit "friends.edn" (apply str
(interpose "\n\n"
[(pr-str (symbol "#address-book/person") {:name "Janet Wood"})
(pr-str (symbol "#address-book/person") {:name "Jack Tripper"})
(pr-str (symbol "#address-book/person") {:name "Chrissy Snow"})])))
如果您正在生产中使用EDN,您如何编写一个EDN文件?类似以上的方法吗?是否有我需要注意的任何问题?
更新
Clojure Cookbook条目,"将记录作为EDN值发出"包含了这个问题更详细的解释和处理它的方法,可以得到有效的EDN标签。