我想从 Clojure 中写出一个 EDN 数据文件作为标记文字。尽管clojure.edn API 包含read
and 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 条目“Emitting Records as EDN Values”包含对此问题的更全面的解释以及导致有效 EDN 标签的处理方法。