我试图将我的一个记录序列化为人类可读的格式.虽然使用Java序列化器进行序列化工作正常但我正在尝试使用print-dup.我面临的问题是,在编写记录时,可以很好地读取记录结果clojure.lang.LispReader $ ReaderException:java.lang.ClassNotFoundException:common.dummy.Doodh.我搞乱了命名空间或什么?请注意,这不是Java序列化的问题.以下代码以最简单的形式
(ns common.dummy)
(defrecord Doodh [id name])
(defn output [filename obj]
(def trr(map->Doodh {:id "moooh" :name "Cows"}))
(def my-string (binding [*print-dup* true] (pr-str trr)))
(spit filename my-string)
)
(defn pull [filename]
(def my-data (with-in-str (slurp filename) (read)))
(println my-data)
)
Run Code Online (Sandbox Code Playgroud)
文本文件内容:
#common.dummy.Doodh["moooh", "Cows"]
Run Code Online (Sandbox Code Playgroud)