Я пишу приложение clojure с кольцом и compojure. Я использую промежуточное ПО ring.middleware.json
для обработки JSON, поэтому мне не нужно сериализовать и десериализовать его самостоятельно в моем коде.
Это промежуточное ПО, кажется, правильно анализирует вложенный JSON только в том случае, если он задан в плоском формате, например, если я хочу отправить вложенные данные POST на маршрут API, я должен закодировать его как:
{"task" : 1,
"success" : false,
"files[0][type]" : "log",
"files[0][sha256]" : "adef5c",
"files[0][url]" : "s3://url"}
Вместо, как мне кажется, более стандартного JSON:
{"task" : 1,
"success" : false,
"files" : [{"type" : "log", "sha256" : "adef5c", "url": "s3://url"}]}
Это отступ или стандартный способ публикации вложенного JSON? Вот мой стек промежуточного ПО:
(defn middleware [handler]
(-> handler
(wrap-json-response)
(wrap-with-logger)
(api)))