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

标签 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"}""")
    json.extract[ThingDTO]
  }
}

case class ThingDTO(someField:String)

我得到的错误:

No usable value for someField Did not find value which can be converted into java.lang.String

最佳答案

它似乎没有记录(或者至少我在寻找它时错过了它),但现在有一个 camelizeCase您可以在解析的 Json 上使用的方法。我在源代码中偶然发现了它,用我正在使用的一些蛇形案例 Json 试了一下,瞧,得到了 Camel 键名。

因此,对于一年后遇到此问题的任何人,将 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)

关于scala - 使用 json4s 在 under_score 和 camelCase 格式之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25168604/

相关文章:

scala - 可观察的异常处理

rest - golang 中特定于平台的反序列化?

c# - 反序列化一个 json 序列化的 CookieCollection

scala - 如何使用 json4s 将对象序列化为 AST?

java - 在反序列化期间将 POJO 映射到具有不可变列表的案例类

scala - 访问案例类注释

scala - IntelliJ 错误地高亮显示 "Wrong number of arguments for extractor"

java.lang.NoClassDefFoundError : scala/StringContext

c# - Tuple<...> 在另一种类型中的 Json.NET 反序列化不起作用?

scala - 反序列化后受案例类定义位置影响的结构相等性