如何将json与下划线映射到case类中的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)
我得到的错误:
someField没有可用的值转换成java.lang.String
它似乎没有被记录(或者至少我在寻找它时错过了它),但是现在有一个camelizeCase
方法,您可以在解析的Json上使用。我在源代码中偶然发现了它,用我正在使用的一些蛇形Json试了一下,你瞧,得到了camelised键名。
所以对于任何在一年后遇到这个问题的人,将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)
目前,我认为唯一的选择是使用反刻度或转换函数。参见http://json4s.org/提取值一节。