Search code examples
jsonclojurepretty-print

How to pretty print JSON to a file in Clojure?


I would like to store JSON content in files but using the pretty version.

Just to be clear, this is the normal JSON:

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

This is the pretty version of it:

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

Is there a way in Clojure to achieve this?


Solution

  • Use the cheshire library found here and use the generate-string function with the pretty flag set to true

    Example

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