Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

clojure get data out of json response

Tags:

json

clojure

I have an json response and would like to get the values out:

(cheshire.core/parse-string (:body picList))

{"photoset" {"primary" "8455893107", "total" "1", "pages" 1, "perpage" 500, "page" 1,
"per_page" 500, "photo" [{"id" "8455893107", "secret" "1a3236df06", "server" "8087", 
"farm" 9, "title" "IMG_0137", "isprimary" "1"}], "owner" "93029076@N07", "id" 
"72157632724688181", "ownername" "clojureB5"}, "stat" "ok"}

How can I get the different values like photoset->primary or photoset->photo->id ? I tried something with (map #(get % "photoset")... but it doest work.

Thanks!

like image 807
Nico Avatar asked Feb 12 '13 21:02

Nico


1 Answers

I think you're looking for clojure.core/get-in

(get-in your-parsed-json ["photoset" "primary"]) ;; "8455893107"

(-> (get-in your-parsed-json ["photoset" "photo"])
  first
  (get "id")) ;; "8455893107"

(get-in your-parsed-json ["photoset" "photo" 0 "id"]) ;; "8455893107"
like image 178
Kyle Avatar answered Sep 22 '22 14:09

Kyle