alm*_*man 7 elixir phoenix-framework
在将内容作为JSON发送之前,我想将elixir中的地图键从snake case更改为camel case.我怎样才能做到这一点?它应该只是一个函数,我将包装每个响应,还是应该在较低级别,即在毒药中完成?
谢谢
use*_*320 15
许多人不知道这是内置于Elixir:
iex> Macro.underscore "SAPExample"
"sap_example"
iex> Macro.camelize "sap_example"
"SapExample"
iex> Macro.camelize "hello_10"
"Hello10"
Run Code Online (Sandbox Code Playgroud)
见文档:http://elixir-lang.org/docs/stable/elixir/Macro.html#underscore/1
实施:https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/macro.ex#L1192
可能使用Macro.underscore/1,但这不是正确的方法。由于Macro模块本身指出:
此功能旨在强调语言标识符/标记,因此它属于
Macro模块。请勿将其用作下划线字符串的通用机制,因为它不支持Unicode或在Elixir标识符中无效的字符。
因此,最好使用其他一些库。我建议使用recase。它可以将字符串转换为任意大小写,而不仅仅是camelCase。
由于它是第三方库,因此需要安装它。
mix.exs到中deps:{:recase, "~> 0.6"}确保使用最新版本!mix deps.get那就是你的用法:
Recase.to_camel("some-value")
# => "someValue"
Recase.to_camel("Some Value")
# => "someValue"
Run Code Online (Sandbox Code Playgroud)
您可以在这里找到文档:https : //hexdocs.pm/recase/readme.html
这里的回购:https : //github.com/sobolevn/recase
| 归档时间: |
|
| 查看次数: |
3631 次 |
| 最近记录: |