1

テスト データをファイルに保存し、テストで再度読み取りたいと思います。データは一連の Clojure マップであり、その 1 つのプロパティはclj-time( org.joda.time.DateTime) 日付/時刻です。値をファイルに書き込むと(を使用spit)、としてシリアル化され#<DateTime 2014-10-03T12:57:15.000Z>ます。slurp(で)読み戻そうとすると、次のようになります。

RuntimeException Unreadable form  clojure.lang.Util.runtimeException (Util.java:221)

より多くの情報がなければ、DateTime. これらの値を読み取って適切に解析する方法はありますか、それとも文字列としてシリアル化し、読み戻すときに手動で解析する必要がありますか?

4

2 に答える 2

0

@noisesmith の回答により、タグ付けされた読者をより詳細に調査するようになりました (@noisesmith に感謝します!)。https://gist.github.com/ragnard/4738185でやりたいことができるようです。具体的には、新しい値を にバインドし、*data-readers*任意の方法で値を解析するようリーダーに指示できます。

print-methodこの場合、テスト データを読み取るだけなので、およびprint-dupプロトコルを変更する必要さえありません。データを通常の日付 ( #inst "...") として保存し、with-joda-time-readerマクロを使用してそれらを読み取るだけです。

于 2014-10-29T09:50:35.387 に答える