2012-06-22 2 views
2

나는 clojure 맵을 나타내는 문자열을 가지고 있습니다. 문자열에서 맵을 재구성하는 쉬운 방법이 있습니까?문자열 표현에서 맵 복구

문자열의 예 - 매우 흥미로운

{:Location {:CountryData {:country_cf 99, :country_code "us", :country "united states"}, :longitude -80.17833, :msa 33100, :dma 528} 

답변

6

사용 read-string 기능 :

(read-string "{:Location {:CountryData {:country_cf 99, :country_code \"us\", :country \"united states\"}, :longitude -80.17833, :msa 33100, :dma 528}}") 
+0

이것을 허용하는 것으로 표시하는 것은 그것을하는 관용적 인 방법처럼 보입니다. – Pranav

+4

이 함수는 기본적으로 코드 평가를 허용하는 clojure 리더를 호출합니다. '(read-string "{: a # = (+ 1 2)}")'는'+'함수를 호출합니다. 이를 방지하려면 전역 변수 [\ * read-eval \ *] (http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/*read-eval*)를' false'. –

3

. 나는 clojure를 사용한 적이 없지만 Lisp 방언에서는 read 함수를 사용한다. 나는 여기 다리에 나가서 클로우 저에서 http://clojure.org/reader에 따라 그것을 할 수 있다고 말한다.

어쩌면 (with-in-str your-string (read))?

+0

화려한! 나는 이것을 생각하지 않고 나 자신을 차고있다! – Pranav

+0

좋은가요? –

+0

예, 그랬습니다. 감사! – Pranav

관련 문제