【问题标题】:How to pretty print JSON to a file in Clojure?如何将 JSON 漂亮地打印到 Clojure 中的文件中?
【发布时间】:2014-04-26 06:33:20
【问题描述】:

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

需要明确的是,这是普通的 JSON:

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

这是它的漂亮版本:

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

Clojure 中有没有办法实现这一点?

【问题讨论】:

  • clojure.data.json 中的 pprint 函数看起来像你想要的。如果转移*out* 是一个问题,我想你可以在另一个线程上写。

标签: json clojure pretty-print


【解决方案1】:

使用找到的柴郡图书馆here 并使用将漂亮标志设置为 true 的 generate-string 函数

例子

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

【讨论】:

  • 如果您不想要或不需要外部库,也应该考虑我的解决方案。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    相关资源
    最近更新 更多