貘、喀耳刻、蛇壳

Tapir, Circe, Snakecase

我有下面的代码

import io.circe.generic.auto._
import io.circe.Encoder
import io.circe.generic.extras._, io.circe.syntax._

implicit val config: Configuration = Configuration.default.withSnakeCaseMemberNames

case class User(firstName: String, lastName: String)

print(User("Foo", "McBar").asJson)

它应该输出类似

的东西
{
  "first_name" : "Foo",
  "last_name" : "McBar"
}

但是我明白了

{
  "firstName" : "Foo",
  "lastName" : "McBar"
}

我做错了什么?我认为提供隐式配置就足够了!!!

import io.circe.generic.auto._ 使用 Configuration.

如果你想使用配置,你必须使用 io.circe.generic.extras.auto._

通用附加项 (io.circe.generic.extras) 不是 标准派生 (io.circe.generic) 的扩展,而是替代项,如果您使用 auto.

,它们在同一个文件中的混合效果不佳