Back
read (clj)
(source)function
(read reader & {:as options})
Reads a single item of JSON data from a java.io.Reader.
If you wish to repeatedly read items from the same reader, you must
supply a PushbackReader with buffer size >= 64, and reuse it on
subsequent calls.
Options are key-value pairs, valid options are:
:eof-error? boolean
If true (default) will throw exception if the stream is empty.
:eof-value Object
Object to return if the stream is empty and eof-error? is
false. Default is nil.
:bigdec boolean
If true use BigDecimal for decimal numbers instead of Double.
Default is false.
:key-fn function
Single-argument function called on JSON property names; return
value will replace the property names in the output. Default
is clojure.core/identity, use clojure.core/keyword to get
keyword properties.
:value-fn function
Function to transform values in maps ("objects" in JSON) in
the output. For each JSON property, value-fn is called with
two arguments: the property name (transformed by key-fn) and
the value. The return value of value-fn will replace the value
in the output. If value-fn returns itself, the property will
be omitted from the output. The default value-fn returns the
value unchanged. This option does not apply to non-map
collections.
:extra-data-fn function
If :extra-data-fn is not nil, then the reader will be checked
for extra data after the read. If found, the extra-data-fn will
be invoked with the read value and the reader. The result of
the extra-data-fn will be returned.