Scala 使用json4s在under_分数和camelCase格式之间进行选择
如何将带下划线的json映射到case类中的camelCase字段Scala 使用json4s在under_分数和camelCase格式之间进行选择,scala,json-deserialization,json4s,Scala,Json Deserialization,Json4s,如何将带下划线的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"}""
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
目前,我认为唯一的选择是使用backticks或Transform函数。请参见“提取值”部分中的
致以最诚挚的问候它似乎没有被记录下来(或者至少我在寻找它时错过了它),但是现在有了一个
camelizeCase
方法,您可以在解析的Json上使用它。我在源代码中偶然发现了它,用我正在使用的一些snake-case 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)