我正在使用REST API来表示具有以下JSON的帐户:
{ "userName": "foo", "password": "bar", "emailId": "baz" }
Run Code Online (Sandbox Code Playgroud)
我有一个Clojure函数来创建一个可以这样调用的帐户:
(create-account :username "foo" :password "bar" :email "baz")
Run Code Online (Sandbox Code Playgroud)
我想要做的是将好的密钥映射create-account到REST API期望的时髦密钥.我目前的解决方案是:
(def clj->rest {:username :userName
:email :emailId})
(apply hash-map
(flatten (map
(fn [[k v]] [(or (clj->rest k) k) v])
args))) ;; args is the arguments to create-account, as above
Run Code Online (Sandbox Code Playgroud)
有没有更惯用的方法来实现这一目标?
(clojure.set/rename-keys args clj->rest)
Run Code Online (Sandbox Code Playgroud)
...模仿你的解决方案,产生......
{:emailId "baz", :userName "foo", :password "bar"}
Run Code Online (Sandbox Code Playgroud)
我认为你已经找到了如何将其更改为所需的JSON.
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |