ring.middleware.nested-params

Middleware to convert a single-depth map of parameters to a nested map.

nested-params-request

added in 1.2

(nested-params-request request)(nested-params-request request options)
Converts a request with a flat map of parameters to a nested map.
See: wrap-nested-params.

parse-nested-keys

(parse-nested-keys param-name)
Parse a parameter name into a list of keys using a 'C'-like index
notation.

For example:

  "foo[bar][][baz]"
  => ["foo" "bar" "" "baz"]

wrap-nested-params

(wrap-nested-params handler)(wrap-nested-params handler options)
Middleware to converts a flat map of parameters into a nested map.
Accepts the following options:

:key-parser - the function to use to parse the parameter names into a list
              of keys. Keys that are empty strings are treated as elements in
              a vector, non-empty keys are treated as elements in a map.
              Defaults to the parse-nested-keys function.

For example:

  {"foo[bar]" "baz"}
  => {"foo" {"bar" "baz"}}

  {"foo[]" "bar"}
  => {"foo" ["bar"]}