user=> (read-string (pr-str {(keyword "key@other") :stuff}))
RuntimeException Map 字面量必须包含偶数个形式 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 序列化。