2015-09-02 70 views
-3

我想下面的數據轉換:Clojure的 - 從一種形式轉換到另一個數據

({"name" "databases", "columns" ["name"], "values" [["testdb"] ["mydb"]]}) 

({:name "testdb"} {:name "mydb"}) 

我摸不清我怎麼可以這樣整齊的Clojure的方式。

+0

我沒有看到這一點在downvotes和鎖。這是一個像在這裏問過的許多其他問題。有什麼不同? –

回答

2

當你想多張地圖都使用相同的按鍵,部分應用zipmap作品很整齊:

(defn to-maps [{:strs [columns values]}] 
    (map (partial zipmap (map keyword columns)) values)) 

例子:

(to-maps {"name" "databases", "columns" ["name"], "values" [["testdb"] ["mydb"]]}) 
;;=> ({:name "testdb"} {:name "mydb"}) 

(to-maps {"name" "databases", 
      "columns" ["name", "connectionstring"], 
      "values" [["testdb", "foo"] ["mydb", "bar"]]}) 
;;=> ({:connectionstring "foo", :name "testdb"} {:connectionstring "bar", :name "mydb"}) 
相關問題