Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过json数据的clojure循环_Json_Loops_Clojure - Fatal编程技术网

通过json数据的clojure循环

通过json数据的clojure循环,json,loops,clojure,Json,Loops,Clojure,我在解析循环中的json数据时遇到问题。我是一个clojure初学者,需要一些关于循环json数据的提示 数据如下所示: {"photoset" {"primary" "8455893107", "total" "2", "pages" 1, "perpage" 500, "page" 1, "per_page" 500, "photo" [{"id" "8455893107", "secret" "1a3236df06", "server" "8087", "farm" 9, "ti

我在解析循环中的json数据时遇到问题。我是一个clojure初学者,需要一些关于循环json数据的提示

数据如下所示:

{"photoset" {"primary" "8455893107", "total" "2", "pages" 1, "perpage" 500, "page" 1, 
"per_page" 500, "photo" 

[{"id" "8455893107", "secret" "1a3236df06", "server" "8087", 
 "farm" 9, "title" "IMG_0137", "isprimary" "1"} 

{"id" "8469482476", "secret" "4c1bf59214",
 "server" "8235", "farm" 9, "title" "HippieBus", "isprimary" "0"}]

, "owner" 
 "93029076@N07", "id" "72157632724688181", "ownername" "clojureB5"}, "stat" "ok"}
(-> (get-in (cheshire.core/parse-string (:body picList)) ["photoset" "photo"]) first (get "id"))
我想做的是循环浏览这两张照片,并用id和farm值构建一个新的url,如

我知道我可以得到这样一个值:

{"photoset" {"primary" "8455893107", "total" "2", "pages" 1, "perpage" 500, "page" 1, 
"per_page" 500, "photo" 

[{"id" "8455893107", "secret" "1a3236df06", "server" "8087", 
 "farm" 9, "title" "IMG_0137", "isprimary" "1"} 

{"id" "8469482476", "secret" "4c1bf59214",
 "server" "8235", "farm" 9, "title" "HippieBus", "isprimary" "0"}]

, "owner" 
 "93029076@N07", "id" "72157632724688181", "ownername" "clojureB5"}, "stat" "ok"}
(-> (get-in (cheshire.core/parse-string (:body picList)) ["photoset" "photo"]) first (get "id"))

但是我现在可以循环吗?

您只需使用
map

(->> (get-in data ["photoset" "photo"])
     (map #(str "http://www.flickr.com/" (get % "farm") "/" (get % "id"))))
它将产生以下列表:

(“”)


您只需使用
map

(->> (get-in data ["photoset" "photo"])
     (map #(str "http://www.flickr.com/" (get % "farm") "/" (get % "id"))))
它将产生以下列表:

(“”)


还有一个问题。。。我想对每个url应用一个函数。我用(doseq[x[links]](println x))尝试了一下,但它将列表作为一个字符串…明白了:(doseq[e data](prn e))再问一个问题。。。我想对每个url应用一个函数。我用(doseq[x[links]](println x))尝试了它,但它将列表作为一个字符串…得到了:(doseq[e data](prn e))