clj-http / get url {:as:json}不能在脚本中工作但在REPL中工作

时间:2015-08-21 03:02:54

标签: json clojure clj-http

我正在试验Clojure和Leiningen。 我成功地执行了REPL中的以下行:

(print (:body (client/get "https://coinbase.com/api/v1/prices/spot_rate?currency=CAD" {:as :json}))

我使用lein new http创建了一个项目。当我在lein run运行以下行时,对JSON的强制不起作用。它只是打印一个正确的JSON字符串。

(ns http.core
  (:require [clj-http.client :as client])
  (:use clojure.pprint))

(defn -main
  []
  (print
    (:body
      (client/get "https://coinbase.com/api/v1/prices/spot_rate?currency=CAD" {:as :json}))

脚本的输出是

{"amount":"306.89","currency":"CAD"}

知道什么是错的吗?

2 个答案:

答案 0 :(得分:4)

事实证明,clj-http版本2.0.0发生了重大变化。 现在必须在project.clj中明确列出可选的依赖项。 我添加后

[cheshire "5.5.0"]

到我的依赖项列表,程序按预期工作。 请参阅文档了解更改here

答案 1 :(得分:1)

我不确切知道改变了什么,但[clj-http“1.1.2”]有你想要的行为。