Json4s (Native/Jackson) 忽略所有未知字段

Json4s (Native/Jackson) Ignore all unknown fields

当使用 Json4s 时,很明显您可以显式忽略特定字段。但是,我没有看到任何关于如何忽略所有未知字段的文档。

在 Jackson 中,我会使用以下注释:

import com.fasterxml.jackson.annotation._

@JsonIgnoreProperties(ignoreUnknown=true)
case class MyClass(string: String)

如何使用 Json4s 的 Jackson 或 Native 版本执行此操作?

我不太确定,如果我在这里找到你,但默认情况下 Json4s(至少是 org.json4s 版本)会忽略其他字段。

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

implicit val formats = DefaultFormats
case class Mailserver(url: String, username: String, password: String)

val json = parse(
"""
  {
    "url": "imap.yahoo.com",
    "username": "myusername",
    "password": "mypassword",
    "additional": "field"
  }
"""
)

val m = json.extract[Mailserver]
println(m.url)
println(m.username)
println(m.password)

这很好用。