Fast JSON parser/writer working directly on UTF-8 bytes.
Fast JSON parser/writer working directly on UTF-8 bytes.
(parse input)(parse input {:keys [key-fn max-depth] :or {max-depth 1000}})Parses JSON from input (byte-array, String or InputStream) into Clojure
data structures.
Options:
:key-fn - fn of String -> map key, applied to object keys. Unset or
nil leaves keys as strings. clojure.core/keyword is recognized and uses
an optimized interning path. Must be pure: results are cached by fn
identity, so a def'd fn gets cross-parse caching while a fresh lambda is
only cached within a single parse:max-depth - maximum nesting depth (default 1000)Throws com.s_exp.oda.JsonParseException on invalid input.
Parses JSON from `input` (byte-array, String or InputStream) into Clojure data structures. Options: * `:key-fn` - fn of String -> map key, applied to object keys. Unset or nil leaves keys as strings. `clojure.core/keyword` is recognized and uses an optimized interning path. Must be pure: results are cached by fn identity, so a def'd fn gets cross-parse caching while a fresh lambda is only cached within a single parse * `:max-depth` - maximum nesting depth (default 1000) Throws `com.s_exp.oda.JsonParseException` on invalid input.
(write x out)(write x out {:keys [default-fn key-fn date-format]})Writes x as JSON to out (OutputStream), flushes, does not close.
See write-str for options.
Writes `x` as JSON to `out` (OutputStream), flushes, does not close. See `write-str` for options.
(write-bytes x)(write-bytes x {:keys [default-fn key-fn date-format]})Writes x as JSON UTF-8 encoded byte-array. See write-str for options.
Writes `x` as JSON UTF-8 encoded byte-array. See `write-str` for options.
(write-str x)(write-str x {:keys [default-fn key-fn date-format]})Writes x as a JSON String.
Options:
:default-fn - called on values that cannot be written natively — both
unsupported types AND supported types with unrepresentable values
(NaN/Infinity Float/Double). Must return a writable value. Without it,
those cases throw.:key-fn - transforms each map key before dispatch. Use to handle
nil keys, custom types, or normalize keys. Takes the key, returns any
writable key (String, Keyword, Symbol, Number).:date-format - format for java.util.Date and java.time.Instant values:
a pattern string or a java.time.format.DateTimeFormatter (zone-less
formatters default to UTC). Default: yyyy-MM-dd'T'HH:mm:ss'Z' at UTC.Writes `x` as a JSON String. Options: * `:default-fn` - called on values that cannot be written natively — both unsupported types AND supported types with unrepresentable values (NaN/Infinity Float/Double). Must return a writable value. Without it, those cases throw. * `:key-fn` - transforms each map key before dispatch. Use to handle nil keys, custom types, or normalize keys. Takes the key, returns any writable key (String, Keyword, Symbol, Number). * `:date-format` - format for java.util.Date and java.time.Instant values: a pattern string or a java.time.format.DateTimeFormatter (zone-less formatters default to UTC). Default: yyyy-MM-dd'T'HH:mm:ss'Z' at UTC.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |