clj-http не возвращает JSON

Я пытаюсь прочитать JSON из ресурса REST, используя clj-http версии 2.2.0, но что бы я ни делал, я получаю результат в виде строки.

Во время отладки я урезал то, что я делаю с этим запросом, до статического документа JSON на моем веб-сервере по https://nym.at/test.json:

{"foo":1,"bar":"baz"}

Я запускаю следующий код в REPL (client привязан к пространству имен clj-http.client):

(client/get "https://nym.at/test.json" {:as :json :insecure? true})

Результат, который я получаю (напечатан вручную):

{:status 200,
 :headers {"Server" "Apache/2.4.18 (Debian)",
           "Upgrade" "h2,h2c",
           "Content-Type" "application/json",
           "Content-Length" "22",
           "Strict-Transport-Security" "max-age=31536000; includeSubDomains",
           "Connection" "Upgrade, close",
           "Accept-Ranges" "bytes",
           "ETag" "\"16-532fcf29f30c6\"",
           "Date" "Mon, 16 May 2016 22:14:59 GMT",
           "Last-Modified" "Mon, 16 May 2016 22:14:27 GMT"},
 :body "{\"foo\":1,\"bar\":\"baz\"}\n",
 :request-time 637,
 :trace-redirects ["https://nym.at/test.json"],
 :orig-content-encoding nil}

Является ли мое ожидание неправильным, что {:as :json} должно привести к синтаксическому анализу ответа clj-http как JSON и его повторению в :body или я тут что то не так делаю?

1 ответ

Решение

Добавлять [cheshire "5.6.1"] к вашему проекту, и он волшебным образом начнет работать

См. https://github.com/dakrone/clj-http

Другие вопросы по тегам