灵药URI.encode_query
在非嵌套 map 上效果很好,例如:
URI.encode_query(%{ a: "b", c: "d" }) # => "a=b&c=d"
但是如果我尝试编码嵌套 map ,比如
URI.encode_query(%{ a: %{ b: "c" } })
我明白了
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{b: "c"}
我如何使用嵌套 map 对查询进行编码?
最佳答案
灵药URI
模块不支持嵌套映射,但您可以使用 plug
包的Plug.Conn.Query.encode/1
确实支持嵌套 map :
iex(1)> Plug.Conn.Query.encode %{ a: "b", c: "d" }
"a=b&c=d"
iex(2)> Plug.Conn.Query.encode %{ a: %{ b: "c" } }
"a[b]=c"
关于Elixir URI.encode_query 嵌套映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43487513/