6

我正在尝试解析 PriorityMaps 的嵌套结构:

(def reader-map
 {
   'util/pm (fn [x] (println "reading > " x) (parse-map x))
})

(binding [*data-readers* reader-map]
    (clojure.core/read-string "#util/pm \"{:z 4 :y #util/pm \"{:y 3 :x 3}\" :x 9}\""))

...但我没有看到传递给我的处理程序的嵌套字符串,只有第一个嵌套标记的字符串:

 reading >  {:z 4 :y #er.util.net/pm

做错了什么?

4

1 回答 1

5

如果要嵌套引号,则需要更多反斜杠:

(binding [*data-readers* reader-map]
    (clojure.core/read-string "#util/pm \"{:z 4 :y #util/pm \\\"{:y 3 :x 3}\\\" :x 9}\""))
于 2012-10-09T01:12:39.313 回答