Search code examples
clojurecompojurering

How to convert map to URL query string in Clojure/Compojure/Ring?


In Clojure / Compojure, how do I convert a map to a URL query string?

{:foo 1 :bar 2 :baz 3}

to

foo=1&bar=2&baz=3

Is there any utility method to do this in compojure?


Solution

  • Yes, there is a utility for this already that doesn't involve Hiccup or rolling your own string/join/URLEncoder function:

    user=> (ring.util.codec/form-encode {:foo 1 :bar 2 :baz 3})
    "foo=1&bar=2&baz=3"
    user=>
    

    Compojure depends on ring/ring-core, which includes ring.util.codec, so you already have it.