我正在尝试解析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
出了什么问题?
答案 0 :(得分:5)
如果需要嵌套引号,则需要更多反斜杠:
(binding [*data-readers* reader-map]
(clojure.core/read-string "#util/pm \"{:z 4 :y #util/pm \\\"{:y 3 :x 3}\\\" :x 9}\""))