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