Chr*_*ens 2 rest json clojure microservices
我是前端工程师,我们的团队正在将许多旧服务转换为用clojure编写的微服务.我看到的主要问题是,clojure命名约定更喜欢连字符,而不是变量名中的单词.这意味着如果您将变量直接映射到JSON,则任何JS使用者都需要使用括号表示法来访问此数据,例如response ['to-separate-words'].这显然不太理想.我认为这将是一个简单的查找最佳实践,但我一直在寻找一个小时,似乎我阅读的所有文档都避免了这个问题,但使用单个单词.还有其他人处理过此事.
您可以使用支持大多数组合的camel-snake-kebab库.您可以将其插入到Clojure的大多数JSON库中(cheshire,cli-json,data.json - 如Elogent所述),因为它们通常可以选择提供处理属性名称修改的函数.
例如用柴郡:
使用驼峰大小写属性名称生成JSON:
(cheshire.core/generate-string {:my-clojure-key "abc"}
{:key-fn camel-snake-kebab.core/->camelCaseString})
Run Code Online (Sandbox Code Playgroud)
结果:
{"myClojureKey":"abc"}
Run Code Online (Sandbox Code Playgroud)
解析JSON以获取烤肉串案例键的地图:
(cheshire.core/parse-string "{\"myClojureKey\":\"abc\"}"
camel-snake-kebab.core/->kebab-case-keyword)
Run Code Online (Sandbox Code Playgroud)
结果:
{:my-clojure-key "abc"}
Run Code Online (Sandbox Code Playgroud)
在camel-snake-kebab自述文件中还有一个data.json的例子.
归档时间: |
|
查看次数: |
264 次 |
最近记录: |