18 lines
574 B
Clojure
18 lines
574 B
Clojure
(require '[cognitect.transit :as transit])
|
|
(import [java.io ByteArrayInputStream ByteArrayOutputStream])
|
|
|
|
;; Write data to a stream
|
|
(def out (ByteArrayOutputStream. 4096))
|
|
(def writer (transit/writer out :json))
|
|
(transit/write writer "foo")
|
|
(transit/write writer {:a [1 2]})
|
|
|
|
;; Take a peek at the JSON
|
|
(.toString out)
|
|
;; => "{\"~#'\":\"foo\"} [\"^ \",\"~:a\",[1,2]]"
|
|
|
|
;; Read data from a stream
|
|
(def in (ByteArrayInputStream. (.toByteArray out)))
|
|
(def reader (transit/reader in :json))
|
|
(prn (transit/read reader)) ;; => "foo"
|
|
(prn (transit/read reader)) ;; => {:a [1 2]}
|