Liking cljdoc? Tell your friends :D

jason.core

JSON encoding and decoding function construction with support for configurable key conversion.

JSON encoding and decoding function construction with support for
configurable key conversion.
raw docstring

*default-object-mapper*clj

Default ObjectMapper instance used when none provided. Has the same configuration as when new-object-mapper is called with no argument.

Default ObjectMapper instance used when none provided. Has the same
configuration as when [[new-object-mapper]] is called with no argument.
sourceraw docstring

*meta-prefix*clj

Meta key prefix used to detect and preserve meta fields. Defaults to '_'.

Meta key prefix used to detect and preserve meta fields. Defaults to '_'.
sourceraw docstring

->decode-key-fnclj

(->decode-key-fn)
(->decode-key-fn fn-or-opts)

Constructs a function to decode JSON keys.

With no arguments, decodes to kebab-case keywords and is _meta aware, i.e., any fields with leading meta prefix will retain their meta prefix.

With a function argument, uses that function to convert both standard and meta keys while retaining leading meta prefix.

Also accepts a map option argument in place of the function which can contain:

  • :standard-key-fn: the key function to use for standard fields, also used for meta fields if no :meta-key-fn provided.
  • :meta-key-fn: the key function to use for meta fields, overriding all meta handling.
Constructs a function to decode JSON keys.

With no arguments, decodes to kebab-case keywords and is `_meta` aware, i.e.,
any fields with leading meta prefix will retain their meta prefix.

With a function argument, uses that function to convert both standard and
meta keys while retaining leading meta prefix.

Also accepts a map option argument in place of the function which can contain:

  - `:standard-key-fn`:  the key function to use for standard fields, also
                         used for meta fields if no `:meta-key-fn` provided.
  - `:meta-key-fn`:      the key function to use for meta fields, overriding
                         all meta handling.
sourceraw docstring

->encode-key-fnclj

(->encode-key-fn)
(->encode-key-fn fn-or-opts)

Constructs a function to encode JSON keys.

With no arguments, encodes to camelCase strings and is _meta aware, i.e., any fields with leading meta prefix will retain their meta prefix.

With a function argument, uses that function to convert both standard and meta keys while retaining leading meta prefix.

Also accepts a map option argument in place of the function which can contain:

  • :standard-key-fn: the key function to use for standard fields, also used for meta fields if no :meta-key-fn provided.
  • :meta-key-fn: the key function to use for meta fields, overriding all meta handling.
Constructs a function to encode JSON keys.

With no arguments, encodes to camelCase strings and is _meta aware, i.e.,
any fields with leading meta prefix will retain their meta prefix.

With a function argument, uses that function to convert both standard and
meta keys while retaining leading meta prefix.

Also accepts a map option argument in place of the function which can contain:

  - `:standard-key-fn`:  the key function to use for standard fields, also
                         used for meta fields if no :meta-key-fn provided.
  - `:meta-key-fn`:      the key function to use for meta fields, overriding
                         all meta handling.
sourceraw docstring

defcoderscljmacro

(defcoders & args)

Defines a pair of JSON encode / decode functions in the current namespace.

If a symbol is passed as the first argument, it is used as the "type" of the coders such that the defined functions have the names -><type>-json and <-<type>-json.

If no symbol is passed, the defined coder functions have the names ->json and <-json.

In addition to a type symbol, a sequence of key-value arguments can be provided, supporting the same options as exposed on new-json-coders allowing full control over the generated functions.

Defines a pair of JSON encode / decode functions in the current namespace.

If a symbol is passed as the first argument, it is used as the "type" of
the coders such that the defined functions have the names `-><type>-json` and
`<-<type>-json`.

If no symbol is passed, the defined coder functions have the names `->json`
and `<-json`.

In addition to a type symbol, a sequence of key-value arguments can be
provided, supporting the same options as exposed on [[new-json-coders]]
allowing full control over the generated functions.
sourceraw docstring

new-json-codersclj

(new-json-coders)
(new-json-coders options)

Constructs a pair of JSON encode / decode functions, at keys :->json and :<-json in the returned map.

With no arguments, uses the default ObjectMapper as returned by new-object-mapper. The optional argument is the same map of options as described in the documentation for new-object-mapper.

Constructs a pair of JSON encode / decode functions, at keys `:->json` and
`:<-json` in the returned map.

With no arguments, uses the default `ObjectMapper` as returned by
[[new-object-mapper]]. The optional argument is the same map of options as
described in the documentation for [[new-object-mapper]].
sourceraw docstring

new-json-decoderclj

(new-json-decoder)
(new-json-decoder object-mapper)

Constructs a JSON decoder function. With no argument, uses the default object mapper defined in *default-object-mapper*. Optionally, takes an ObjectMapper to use instead.

The returned decoder returns nil on a nil or empty string value, otherwise JSON decodes it.

Constructs a JSON decoder function. With no argument, uses the default
object mapper defined in [[*default-object-mapper*]]. Optionally, takes
an `ObjectMapper` to use instead.

The returned decoder returns nil on a nil or empty string value, otherwise
JSON decodes it.
sourceraw docstring

new-json-encoderclj

(new-json-encoder)
(new-json-encoder object-mapper)

Constructs a JSON encoder function. With no argument, uses the default object mapper defined in *default-object-mapper*. Optionally, takes an ObjectMapper to use instead.

The returned encoder returns nil on a nil value, otherwise JSON encodes it.

Constructs a JSON encoder function. With no argument, uses the default
object mapper defined in [[*default-object-mapper*]]. Optionally, takes
an `ObjectMapper` to use instead.

The returned encoder returns nil on a nil value, otherwise JSON encodes it.
sourceraw docstring

new-object-mapperclj

(new-object-mapper)
(new-object-mapper options)

Constructs a Jackson ObjectMapper.

With no arguments, the returned object mapper encodes and decodes keys exactly as provided, does not produce pretty JSON and includes no additional modules.

The optional first parameter is a map of options. The following options are supported:

Mapper options
:modulesvector of ObjectMapper modules

 

Encoding options
:prettyset to true use Jackson's pretty-printing defaults (default: true)
:escape-non-asciiset to true to escape non-ASCII characters
:date-formatstring for custom date formatting (default: yyyy-MM-dd'T'HH:mm:ss'Z')
:encode-key-fntrue to coerce keyword keys to strings, false to leave them as keywords, or a function to provide custom coercion (default: the default of ->encode-key-fn)
:encodersa map of custom encoders where keys should be types and values should be encoder functions

Encoder functions take two parameters: the value to be encoded and a JsonGenerator object. The function should call JsonGenerator methods to emit the desired JSON.

Decoding options
:decode-key-fntrue to coerce keys to keywords, false to leave them as strings, or a function to provide custom coercion (default: the default of ->decode-key-fn)
:bigdecimalstrue to decode doubles as BigDecimals (default: false)

See https://metosin.github.io/jsonista for further details of the underlying JSON library, jsonista.

Constructs a Jackson `ObjectMapper`.

With no arguments, the returned object mapper encodes and decodes keys exactly
as provided, does not produce pretty JSON and includes no additional modules.

The optional first parameter is a map of options. The following options are
supported:

| Mapper options      |                                  |
| ------------------- | -------------------------------- |
| `:modules`          | vector of `ObjectMapper` modules |

&nbsp;

| Encoding options    |                                                     |
| ------------------- | --------------------------------------------------- |
| `:pretty`           | set to `true` use Jackson's pretty-printing defaults (default: `true`) |
| `:escape-non-ascii` | set to `true` to escape non-ASCII characters |
| `:date-format`      | string for custom date formatting (default: `yyyy-MM-dd'T'HH:mm:ss'Z'`) |
| `:encode-key-fn`    | `true` to coerce keyword keys to strings, `false` to leave them as keywords, or a function to provide custom coercion (default: the default of [[->encode-key-fn]]) |
| `:encoders`         | a map of custom encoders where keys should be types and values should be encoder functions |

Encoder functions take two parameters: the value to be encoded and a
`JsonGenerator` object. The function should call `JsonGenerator` methods to
emit the desired JSON.

| Decoding options    |                                                     |
| ------------------- | --------------------------------------------------- |
| `:decode-key-fn`    |  `true` to coerce keys to keywords, false to leave them as strings, or a function to provide custom coercion (default: the default of [[->decode-key-fn]]) |
| `:bigdecimals`      |  `true` to decode doubles as BigDecimals (default: `false`) |

See https://metosin.github.io/jsonista for further details of the underlying
JSON library, `jsonista`.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close