Stuart
Stuart

Reputation: 4258

ClojureScript - Ajax - Retrieving json

I have my dependencies

(ns test.core
    (:require [reagent.core :as reagent :refer [atom]]
              [ajax.core :refer [GET]]))

I then have my handler that handles the responses to my ajax call


(defn handle-response [response]
    (println (type response))
    (println film))

THe data from my call is JSON, in the browser it looks like this:

{"id":3,"name":"Sicario","star":"Emily Blunt","rating":5}

When I run the above Clojure, I see this:

cljs.core/PersistentArrayMap core.cljs:192:23
{id 3, name Sicario, star Emily Blunt, rating 5}

Is their a way for me to go from the PersistArrayMap, and destructure it into id, name, star and rating?

I tried

(let [film (js->clj (.parse js/JSON response) :keywordize-keys true)]
   ...)

Hoping I would get a map named film, but no avail!

I think maybe I could use (get-in), but can't get the syntax right for this either. Thanks,

Upvotes: 0

Views: 370

Answers (1)

Stuart
Stuart

Reputation: 4258

Got it,

I was missing :response-format :json and :keywords? true from my GET call

Now, it looks like this:

(GET (str "https://localhost:5001/api/films/" film-name)
         {:response-format :json
          :keywords? true

And it all works.

Upvotes: 1

Related Questions