user=> (read-string (pr-str {(keyword "key@other") :stuff}))
RuntimeException Map literal must contain an even number of forms clojure.lang.Util.runtimeException (Util.java:170)
pr-str 输出 "{:key@other :stuff}", 但 read-string 无法正确解析。要么 pr-str 需要转义 @ 符号,要么 read-string 需要正确处理关键字内的符号。
背景:我正在将带有电子邮件地址的映射作为 Storm bolts 的键传递,这些 bolts 需要thrift-serializable形式。使用 pr-str/read-string 组合在这些键上失败,所以我退回到使用 JSON 序列化。