如何在clojure中打印json数据?

时间:2016-07-14 11:30:38

标签: json clojure

我是clojure编程的新手。我只是想知道,我怎么能打印我的json数据。 我试过这样:

user=> (clojure.pprint/pprint {"a": "apple", "b": "boy" "c": "cat"})
;; {"a": "apple", "b": "boy", "c": "cat"}

我希望我的输出看起来像

   {"a": "apple",
    "b": "boy",
    "c": "cat"}

任何人都可以告诉我,如何获得json数据的pprint输出?

2 个答案:

答案 0 :(得分:1)

您需要一个库[org.clojure / data.json" 0.2.6"],以便与json合作。

Examles:

(clojure.pprint/pprint (json/write-str {"a" "apple", "b" "boy" "c" "cat"}))
=> "{\"a\":\"apple\",\"b\":\"boy\",\"c\":\"cat\"}"

(clojure.pprint/pprint (json/read-str "{\"a\":\"apple\",\"b\":\"boy\",\"c\":\"cat\"}"))
=> {"a" "apple", "b" "boy", "c" "cat"}

答案 1 :(得分:0)

如果我理解正确,您希望在每个键值对之后使用换行符对数据进行格式化。如果是这样,我建议您查看clojure.pprint提供的formatting options。也就是说,您可以将*print-right-margin*设置为足够小的值,以强制每对显示在新行上。如果省略此绑定,pprint将使用默认值72,并且任何大于该值的表单都应自动以这种方式格式化。

(binding [clojure.pprint/*print-right-margin* 16]
  (clojure.pprint/pprint
    {"a" "apple" "b" "boy" "c" "cat"}))

;; {"a" "apple",
;;  "b" "boy",
;;  "c" "cat"}