Clojure:将字符串转换为映射

Cra*_*hax 3 dictionary clojure

你知道一个接受 Clojure 字符串并将其转换为映射的函数吗?例如,如果函数获取字符串

:第一个“约翰”:最后一个“卢卡斯”:城市“伦敦”

它返回一个具有先前键值关系的映射。

Mat*_*mer 6

您可以为此使用 clojure.end/read-string 函数。它确保没有人向您的系统注入代码,否则将解析 clojure 数据结构。前置“{”并附加“}”以使其成为地图,可以这样解析:

(def stringtoparse ":first \"John\" :last \"Lukas\" :city \"London\"") 

(clojure.edn/read-string (str "{" stringtoparse "}"))
Run Code Online (Sandbox Code Playgroud)

  • @CrazySynthax 那将是 `clojure.core` 中的 `read-string` 方法,你不应该*使用它,原因是 [here](http://clojuredocs.org/clojure.core/read-string) 和[这里](http://clojuredocs.org/clojure.core/read)。 (4认同)