clj-http/get url {:as:json}不能在脚本中工作,但在REPL中
问题描述:
我正在试验Clojure和Leiningen。 我成功地执行于REPL以下行:clj-http/get url {:as:json}不能在脚本中工作,但在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"}
任何想法有什么不对?
答
我不知道到底发生了什么变化,但[clj-http“1.1.2”]有你想要的行为。
答
事实证明,clj-http版本2.0.0发生了重大变化。 现在必须明确列出project.clj
中的可选依赖关系。 我添加后
[cheshire "5.5.0"]
我的列表的依赖关系程序按预期工作。 请参阅更改文件here。
你使用的是什么版本的clj-http。另外,你期望输出什么? – RedDeckWins
我已经在我的project.clj中配置了clj-http 2.0.0。但我怀疑REPL拉了一个不同的版本。我不知道如何检查。预期的输出是Clojure地图{:amount“306.89”,:currency“CAD} –
[typos fixed]我在我的project.clj中配置了clj-http 2.0.0。但是我怀疑REPL拉一个不同的版本,我不知道如何检查,预期的输出将是一个Clojure地图{:amount“306.89”,:currency“CAD} –