如何在 class 映射时忽略来自 json 的键

How to ignore a key from json while mapping in case class

如果我有 JSON

{"name":"jack","email":"jackt@gmail.com"}

现在在映射这个 JSON 时,我只想在我的情况下映射名称 class,例如

case class Person(name:String)

我们怎样才能做到这一点?

    import play.api.libs.json.Json 

    case class Sample(name:String)

    implicit val SampleJosn = Json.reads[Sample]

    val result = Json.parse("""{"name":"jack","email":"jackt@gmail.com"}""").as[Sample]

    val result2 = Json.parse("""{"name":"jack"}""").as[Sample] 

将忽略电子邮件映射您的姓名。

请参阅此处 Fiddle:https://scalafiddle.io/sf/9nppAtI/0

import spray.json._


case class Person(name: String)
object PersonFormat extends DefaultJsonProtocol {
  implicit val personFormat = jsonFormat1(Person)
}
import PersonFormat._

val source = """{ "name":"jack", "email":"jackt@gmail.com" }"""
source.parseJson.convertTo[Person]

您需要使用隐式 val 定义 JsonProtocol。