2015-08-21 33 views
2

我正在試驗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"} 

任何想法有什麼不對?

+0

你使用的是什麼版本的clj-http。另外,你期望輸出什麼? – RedDeckWins

+0

我已經在我的project.clj中配置了clj-http 2.0.0。但我懷疑REPL拉了一個不同的版本。我不知道如何檢查。預期的輸出是Clojure地圖{:amount「306.89」,:currency「CAD} –

+0

[typos fixed]我在我的project.clj中配置了clj-http 2.0.0。但是我懷疑REPL拉一個不同的版本,我不知道如何檢查,預期的輸出將是一個Clojure地圖{:amount「306.89」,:currency「CAD} –

回答

1

我不知道到底發生了什麼變化,但[clj-http「1.1.2」]有你想要的行爲。

2

事實證明,clj-http版本2.0.0發生了重大變化。 現在必須明確列出project.clj中的可選依賴關係。 我添加後

[cheshire "5.5.0"] 

我的列表的依賴關係程序按預期工作。 請參閱更改文件here