2016-07-14 103 views
0

我是clojure編程新手。我只想知道,我怎樣才能打印我的json數據。 我想是這樣的:如何在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輸出?

+3

我不明白;您的問題中的數據都不是有效的JSON。 –

回答

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"} 
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"}