Как красиво распечатать JSON в файл в Clojure?

Я хотел бы хранить контент JSON в файлах, но используя красивую версию.

Просто чтобы прояснить, это обычный JSON:

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

Это красивая версия этого:

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

Есть ли способ в Clojure добиться этого?

1 ответ

Решение

Используйте библиотеку cheshire, найденную здесь, и используйте функцию generate-string с флагом pretty, установленным в true

пример

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

Вы можете использовать встроенный with-out-str функция для захвата всего, что записано в выходной буфер, и сохранения его в виде строки.

(with-out-str (clojure.data.json/pprint your-map-or-whatever))
Другие вопросы по тегам