【问题标题】:How to pprint json data in clojure?如何在clojure中打印json数据?
【发布时间】:2016-07-14 11:30:38
【问题描述】:

我是 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 输出?

【问题讨论】:

  • 我不明白;您问题中的所有数据都不是有效的 JSON。

标签: json clojure


【解决方案1】:

您需要一个库 [org.clojure/data.json "0.2.6"] 来使用 json。

例子:

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

【讨论】:

    【解决方案2】:

    如果我理解正确,您希望在每个键值对之后使用换行符格式化您的数据。如果是这样,我建议您查看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"}
    

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      相关资源
      最近更新 更多