ClojureScript - Ajax - 检索 json
ClojureScript - Ajax - Retrieving json
我有依赖关系
(ns test.core
(:require [reagent.core :as reagent :refer [atom]]
[ajax.core :refer [GET]]))
然后我有我的处理程序来处理对我的 ajax 调用的响应
(defn handle-response [response]
(println (type response))
(println film))
我的通话数据是 JSON,在浏览器中它看起来像这样:
{"id":3,"name":"Sicario","star":"Emily Blunt","rating":5}
当我运行上面的Clojure时,我看到了这个:
cljs.core/PersistentArrayMap core.cljs:192:23
{id 3, name Sicario, star Emily Blunt, rating 5}
他们是我从 PersistArrayMap 解构为 id
、name
、star
和 rating
的方法吗?
我试过了
(let [film (js->clj (.parse js/JSON response) :keywordize-keys true)]
...)
希望我能得到一张名为电影的地图,但无济于事!
我想也许我可以使用 (get-in)
,但也无法获得正确的语法。
谢谢,
知道了,
我的 GET 调用中缺少 :response-format :json
和 :keywords? true
现在,它看起来像这样:
(GET (str "https://localhost:5001/api/films/" film-name)
{:response-format :json
:keywords? true
一切正常。
我有依赖关系
(ns test.core
(:require [reagent.core :as reagent :refer [atom]]
[ajax.core :refer [GET]]))
然后我有我的处理程序来处理对我的 ajax 调用的响应
(defn handle-response [response]
(println (type response))
(println film))
我的通话数据是 JSON,在浏览器中它看起来像这样:
{"id":3,"name":"Sicario","star":"Emily Blunt","rating":5}
当我运行上面的Clojure时,我看到了这个:
cljs.core/PersistentArrayMap core.cljs:192:23
{id 3, name Sicario, star Emily Blunt, rating 5}
他们是我从 PersistArrayMap 解构为 id
、name
、star
和 rating
的方法吗?
我试过了
(let [film (js->clj (.parse js/JSON response) :keywordize-keys true)]
...)
希望我能得到一张名为电影的地图,但无济于事!
我想也许我可以使用 (get-in)
,但也无法获得正确的语法。
谢谢,
知道了,
我的 GET 调用中缺少 :response-format :json
和 :keywords? true
现在,它看起来像这样:
(GET (str "https://localhost:5001/api/films/" film-name)
{:response-format :json
:keywords? true
一切正常。