如何在Clojure中将JSON打印到文件?

时间:2014-04-26 06:33:20

标签: json clojure pretty-print

我想将JSON内容存储在文件中但使用漂亮的版本。

为了清楚起见,这是正常的JSON:

{"b":2, "a":1}

这是它的漂亮版本:

{
    "b": 2,
    "a": 1
}

Clojure有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:9)

使用找到的cheshire图书馆here 并使用generate-string函数并将pretty标志设置为true

示例

;; generate some JSON with pretty formatting
(generate-string {:foo "bar" :baz {:eggplant [1 2 3]}} {:pretty true})
;; {
;;   "foo" : "bar",
;;   "baz" : {
;;     "eggplant" : [ 1, 2, 3 ]
;;   }
;; }

答案 1 :(得分:4)

您可以使用内置的with-out-str函数来捕获写入输出缓冲区的所有内容并将其存储为字符串。

(with-out-str (clojure.data.json/pprint your-map-or-whatever))