使用json4s在under_score和camelCase格式之间进行选择

Neu*_*ino 5 scala json4s json-deserialization

如何将带有下划线的json映射到案例类中的camelCase字段?

import org.json4s.jackson.JsonMethods.parse
import org.json4s.DefaultFormats

object Testing {
  implicit val formats = DefaultFormats.withBigDecimal

  def test = {
    val json = parse("""{"some_field":"a value"}""")
    json.extract[ThingDTO]
  }
}

case class ThingDTO(someField:String)
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

someField没有可用值没有找到可以转换为java.lang.String的值

Emm*_*ows 9

它似乎没有被记录(或者至少我在寻找它时错过了它),但是现在有一种camelizeCase方法可以在解析的Json上使用.我在源代码中偶然发现了它,给了我一些与我一起工作的Json蛇案例,并且看到了得到了骆驼的关键名字.

因此,对于每年遇到此问题的任何人来说,将OP的代码更改为以下内容将起作用:

import org.json4s._
import org.json4s.DefaultFormats
import org.json4s.native.JsonMethods._

object Testing {
  implicit val formats = DefaultFormats.withBigDecimal

  def test = {
    val json = parse("""{"some_field":"a value"}""").camelizeKeys
    json.extract[ThingDTO]
  }
}

case class ThingDTO(someField:String)
Run Code Online (Sandbox Code Playgroud)