我正在尝试解析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}\""))
Run Code Online (Sandbox Code Playgroud)
...但是我没有看到嵌套的字符串像我期望的那样传递到我的处理程序中,只看到第一个嵌套标记的字符串:
reading > {:z 4 :y #er.util.net/pm
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
如果需要嵌套引号,则需要更多反斜杠:
(binding [*data-readers* reader-map]
(clojure.core/read-string "#util/pm \"{:z 4 :y #util/pm \\\"{:y 3 :x 3}\\\" :x 9}\""))
Run Code Online (Sandbox Code Playgroud)