从字符串表示中恢复映射

Pra*_*nav 2 clojure

我有一个字符串,它代表了一个clojure地图.有没有一种从字符串重建地图的简单方法?

字符串的一个例子 -

{:Location {:CountryData {:country_cf 99, :country_code "us", :country "united states"}, :longitude -80.17833, :msa 33100, :dma 528}
Run Code Online (Sandbox Code Playgroud)

Paw*_*ski 6

使用read-string功能:

(read-string "{:Location {:CountryData {:country_cf 99, :country_code \"us\", :country \"united states\"}, :longitude -80.17833, :msa 33100, :dma 528}}")
Run Code Online (Sandbox Code Playgroud)

  • 请注意,此函数调用clojure reader,默认情况下允许代码评估,例如`(read-string"{:a#=(+ 1 2)}")`调用`+`函数.要防止这种情况,请将全局变量[\*read-eval\*](http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/*read-eval*)绑定到`返回FALSE. (4认同)