Как красиво распечатать 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))