나는 clojure 맵을 나타내는 문자열을 가지고 있습니다. 문자열에서 맵을 재구성하는 쉬운 방법이 있습니까?문자열 표현에서 맵 복구
문자열의 예 - 매우 흥미로운
{:Location {:CountryData {:country_cf 99, :country_code "us", :country "united states"}, :longitude -80.17833, :msa 33100, :dma 528}
나는 clojure 맵을 나타내는 문자열을 가지고 있습니다. 문자열에서 맵을 재구성하는 쉬운 방법이 있습니까?문자열 표현에서 맵 복구
문자열의 예 - 매우 흥미로운
{:Location {:CountryData {:country_cf 99, :country_code "us", :country "united states"}, :longitude -80.17833, :msa 33100, :dma 528}
사용 read-string
기능 :
(read-string "{:Location {:CountryData {:country_cf 99, :country_code \"us\", :country \"united states\"}, :longitude -80.17833, :msa 33100, :dma 528}}")
. 나는 clojure를 사용한 적이 없지만 Lisp 방언에서는 read
함수를 사용한다. 나는 여기 다리에 나가서 클로우 저에서 http://clojure.org/reader에 따라 그것을 할 수 있다고 말한다.
어쩌면 (with-in-str your-string (read))
?
이것을 허용하는 것으로 표시하는 것은 그것을하는 관용적 인 방법처럼 보입니다. – Pranav
이 함수는 기본적으로 코드 평가를 허용하는 clojure 리더를 호출합니다. '(read-string "{: a # = (+ 1 2)}")'는'+'함수를 호출합니다. 이를 방지하려면 전역 변수 [\ * read-eval \ *] (http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/*read-eval*)를' false'. –