2

私が持っているとしましょう:

(def c [{:id 12 :name "John"}])

これをファイルに書き込むにはどうすればよいですか?

このデータ構造を取り戻すにはどうすればよいですか?

4

2 に答える 2

1

ドキュメントのコードを見て、特に下部を読んでください。あなたが探しているものの完全な例があります。

于 2014-08-13T07:36:39.007 に答える
1

うまくいく完璧ではない解決策:

(require '[clojure.java.io :as io]
         '[cognitect.transit :as t])

(def c [{:id 12 :name "John"}])

(def dir "resources/json/")

(defn write-transit [dir file-name file-type coll]
  (let [suffix {:json ".json" :json-verbose ".verbose.json" :msgpack ".mp"}]
    (with-open [out (io/output-stream 
                      (str dir "/" file-name (file-type suffix)))]
        (t/write (t/writer out file-type) coll)))))

(defn read-transit [dir file-name file-type]
  (let [suffix {:json ".json" :json-verbose ".verbose.json" :msgpack ".mp"}]
    (with-open [in (io/input-stream (str dir "/" file-name (file-type suffix)))]
      (t/read (t/reader in file-type)))))

(write-transit dir "test" :json c)
;=> nil

(read-transit dir "test" :json)
;=> [{:id 12 :name "John"}]
于 2014-08-13T18:19:33.437 に答える