0
你知道一個函數,它需要一個Clojure字符串並將其轉換爲地圖。例如,如果函數得到字符串Clojure:將一個字符串轉換爲地圖
:first "John" :last "Lukas" :city "London"
它返回一個包含以前鍵值關係的映射。
你知道一個函數,它需要一個Clojure字符串並將其轉換爲地圖。例如,如果函數得到字符串Clojure:將一個字符串轉換爲地圖
:first "John" :last "Lukas" :city "London"
它返回一個包含以前鍵值關係的映射。
對此,您可以使用clojure.end/read-string函數。它確保沒有人向您的系統注入代碼,但否則會解析clojure數據結構。前面加上「{」和追加「}」使其成爲一個地圖,可以分析這樣:
(def stringtoparse ":first \"John\" :last \"Lukas\" :city \"London\"")
(clojure.edn/read-string (str "{" stringtoparse "}"))
當我使用該模塊clojure.edn我得到一個錯誤:ClassNotFoundException的clojure.edn java.net.URLClassLoader的.findClass(URLClassLoader.java:381) 我使用Clojure 1.7。這個模塊只存在於Clojure 1.8中嗎?無論如何在1.7版本中使用它? – CrazySynthax
什麼版本的clojure正在使用? clojure.edn命名空間自Clojure 1.5以來就存在。 –
我使用1.7,我發現它在我沒有提到「clojure.edn」時起作用。 Just(read-string(str「{」stringtoparse「}」)) - 它的工作原理! – CrazySynthax